Graphviz 13.0.0~dev.20241220.2304
|
C implementation of gv_fopen
More...
#include <assert.h>
#include <errno.h>
#include <fcntl.h>
#include <stdbool.h>
#include <stddef.h>
#include <stdio.h>
#include <string.h>
#include <unistd.h>
#include <util/gv_fopen.h>
#include <util/streq.h>
Go to the source code of this file.
Functions | |
static FILE * | fopen_ (const char *filename, const char *mode) |
platform abstraction over fopen | |
FILE * | gv_fopen (const char *filename, const char *mode) |
|
static |
Definition at line 16 of file gv_fopen.c.
References NULL.
Referenced by gv_fopen().
FILE * gv_fopen | ( | const char * | filename, |
const char * | mode | ||
) |
open a file, setting close-on-exec
Generally, library code should set close-on-exec (O_CLOEXEC
) on file descriptors it creates to avoid child processes of concurrent fork
+exec
operations accidentally inheriting copies of the descriptors. It is tricky to achieve this without races. This function attempts to avoid the common problems when trying to do this with fopen
.
filename | A filename, as you would pass to fopen |
mode | A mode, as you would pass to fopen |
NULL
on failure Definition at line 32 of file gv_fopen.c.
References err, flags, fopen_(), NULL, and streq().
Referenced by cat_libfile(), gvconfig(), gvdevice_initialize(), gvevent_read(), gvNextInputGraph(), gvusershape_file_access(), nextFile(), and user_init().