]> pd.if.org Git - pdclib/blob - man3/flockfile.3
gets() not required anymore since C11. Disabled to avoid implicit declaration / type...
[pdclib] / man3 / flockfile.3
1 .\" This file is part of the Public Domain C Library (PDCLib).\r
2 .\" Permission is granted to use, modify, and / or redistribute at will.\r
3 .\"\r
4 .Dd\r
5 .Dt flockfile 3\r
6 .Os\r
7 .\"\r
8 .Sh NAME\r
9 .Nm flockfile, ftrylockfile, funlockfile\r
10 .Nd stdio file locking\r
11 .\"\r
12 .Sh SYNOPSIS\r
13 .Sy #define _POSIX_C_SOURCE >= 200112L || _XOPEN_SOURCE >= 600 || _SVID_SOURCE || _BSD_SOURCE\r
14 .\"\r
15 .In stdio.h\r
16 .Fn "void flockfile" "FILE *file"\r
17 .Fn "int ftrylockfile" "FILE *file"\r
18 .Fn "void funlockfile" "FILE *file"\r
19 .\"\r
20 .Sh DESCRIPTION\r
21 .Fn flockfile\r
22 locks the passed FILE stream for access by the calling thread, potentially \r
23 blocking. \r
24 .Fn ftrylockfile\r
25 attempts to lock the file for the calling thread, but will return failure if\r
26 another thread has already locked the file.\r
27 .Fn funlockfile\r
28 releases the lock on the stream, allowing another thread in the process to \r
29 access it.\r
30 .\"\r
31 .Pp\r
32 The same stream may be locked multiple times by the calling thread; the number \r
33 of calls to \r
34 .Fn flockfile \r
35 and \r
36 .Fn ftrylockfile\r
37 on a file must be equal to the number of calls to\r
38 .Fn funlockfile .\r
39 .\"\r
40 .Pp\r
41 No other thread may do I/O through the locked file while it is locked.\r
42 .\"\r
43 .Sh IMPLEMENTATION NOTES\r
44 PDCLib implements the file locking on top of the Mutex primitives added by C11\r
45 .\"\r
46 .Sh SEE ALSO\r
47 .Xr fopen 3\r
48 .Xr fclose 3\r
49 .Xr unlocked_stdio 3\r
50 .Xr mtx_t 3\r
51 .\"\r
52 .Sh STANDARDS\r
53 The locked I/O routines were initially introduced in \r
54 .St -svid4 ,\r
55 and incorporated into POSIX in \r
56 .St -p1003.1-2001 .