Использование fwrite для файлового дескриптора / конвертировать файловый дескриптор в файловый указатель - PullRequest
2 голосов
/ 22 июля 2010

В последнее время я работаю над некоторыми небольшими демонстрациями сериализации данных.Однако мне было интересно, как перенести двоичные данные из структуры в дескриптор файла.

Я знаю, что единственный (простой) способ сделать это - через fwrite (если это делает write,тогда, пожалуйста, скажите так), поэтому есть ли:

A) fwrite вызов для использования в файловых дескрипторах?

или

B) Способ созданияFILE * вокруг существующего файлового дескриптора / сокета, аналогично fileno?

Ответы [ 2 ]

5 голосов
/ 22 июля 2010

Использование fdopen .

0 голосов
/ 22 июля 2010

Есть ответы как для А), так и для В):

А) Да, write() для дескриптора файла аналогично fwrite() для указателя файла:

if (fwrite(&foo, sizeof foo, 1, fp) < 1)
     /* Not successful */

или

if (write(fd, &foo, sizeof foo) < sizeof foo)
    /* Not immediately successful */

B) Как говорит Мэтт Джойнер , fdopen() является инверсией fileno().

...