最近,我一直在做一些小型数据序列化演示。但是,我想知道如何将二进制数据从结构传输到文件描述符。
我知道这样做的唯一(简单)方法是通过fwrite
(如果write
这样做,那么请说出来),那么是否有:
A)fwrite
在文件描述符上使用的调用?
或者
B)一种FILE *
围绕现有文件描述符/套接字创建的方法,例如与fileno
?
最近,我一直在做一些小型数据序列化演示。但是,我想知道如何将二进制数据从结构传输到文件描述符。
我知道这样做的唯一(简单)方法是通过fwrite
(如果write
这样做,那么请说出来),那么是否有:
A)fwrite
在文件描述符上使用的调用?
或者
B)一种FILE *
围绕现有文件描述符/套接字创建的方法,例如与fileno
?
使用fdopen。
A)和B)都有答案:
A)是write()
的,文件描述符类似于fwrite()
文件指针:
if (fwrite(&foo, sizeof foo, 1, fp) < 1)
/* Not successful */
或者
if (write(fd, &foo, sizeof foo) < sizeof foo)
/* Not immediately successful */
B) 正如Matt Joiner所说,fdopen()
是 的倒数fileno()
。