How to get a FILE pointer from a file descriptor?

前端 未结 3 1415
我寻月下人不归
我寻月下人不归 2020-12-07 14:17

I\'m playing around with mkstemp(), which provides a file descriptor, but I want to generate formatted output via fprintf(). Is there an easy way t

相关标签:
3条回答
  • 2020-12-07 15:05

    Use fdopen():

    FILE* fp = fdopen(fd, "w");
    
    0 讨论(0)
  • 2020-12-07 15:06

    FILE* f = fdopen(d, "w");

    man fdopen output:

    SYNOPSIS

    #include <stdio.h>
    
    FILE *
    fdopen(int fildes, const char *mode);
    

    The fdopen() function associates a stream with the existing file descriptor, fildes. The mode of the stream must be compatible with the mode of the file descriptor. When the stream is closed via fclose(3), fildes is closed also.

    0 讨论(0)
  • 2020-12-07 15:16

    There is no standard way of doing this (or the reverse) as the C Standard has nothing to say about file descriptors. Your specific platform may or may not provide such a mechanism.

    0 讨论(0)
提交回复
热议问题