最近,我一直致力于一些小型数据序列化演示。但是,我想知道如何将二进制数据从结构传输到文件描述符。
我知道唯一(简单)的方法是通过fwrite
(如果write
执行此操作,请说明),那么是否存在:
A)在文件描述符上使用fwrite
调用?
或
B)在现有文件描述符/套接字周围创建FILE *
的方法,与fileno
相反?
答案 0 :(得分:5)
使用fdopen。
答案 1 :(得分:0)
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()
的倒数。