Graphviz 13.0.0~dev.20241220.2304
Loading...
Searching...
No Matches
gv_fopen.h File Reference

wrapper around fopen for internal library usage More...

#include <stdio.h>
Include dependency graph for gv_fopen.h:
This graph shows which files directly or indirectly include this file:

Go to the source code of this file.

Macros

#define UTIL_API   /* nothing */
 

Functions

UTIL_API FILE * gv_fopen (const char *filename, const char *mode)
 

Macro Definition Documentation

◆ UTIL_API

#define UTIL_API   /* nothing */

hide the symbols this header declares by default

The expectation is that users of this header (applications, shared libraries, or static libraries) want to call gv_fopen but not re-export it to their users. This annotation is only correct while the containing library is built statically. If it were built as a shared library, gv_fopen would need to have default visibility (and thus be unavoidably re-exported) in order to be callable.

Definition at line 18 of file gv_fopen.h.

Function Documentation

◆ gv_fopen()

UTIL_API 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.

Parameters
filenameA filename, as you would pass to fopen
modeA mode, as you would pass to fopen
Returns
A file handle with close-on-exit set on success or 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().

Here is the call graph for this function:
Here is the caller graph for this function: