| Skip Navigation Links | |
| Exit Print View | |
![]() | man pages section 3: Basic Library Functions Oracle Solaris 11 Information Library |
enable_extended_FILE_stdio(3C)
posix_spawnattr_getschedparam(3C)
posix_spawnattr_getschedpolicy(3C)
posix_spawnattr_getsigdefault(3C)
posix_spawnattr_getsigignore_np(3C)
posix_spawnattr_getsigmask(3C)
posix_spawnattr_setschedparam(3C)
posix_spawnattr_setschedpolicy(3C)
posix_spawnattr_setsigdefault(3C)
posix_spawnattr_setsigignore_np(3C)
posix_spawnattr_setsigmask(3C)
posix_spawn_file_actions_addclose(3C)
posix_spawn_file_actions_addclosefrom_np(3C)
posix_spawn_file_actions_adddup2(3C)
posix_spawn_file_actions_addopen(3C)
posix_spawn_file_actions_destroy(3C)
posix_spawn_file_actions_init(3C)
pthread_attr_getdetachstate(3C)
pthread_attr_getinheritsched(3C)
pthread_attr_getschedparam(3C)
pthread_attr_getschedpolicy(3C)
pthread_attr_setdetachstate(3C)
pthread_attr_setinheritsched(3C)
pthread_attr_setschedparam(3C)
pthread_attr_setschedpolicy(3C)
pthread_barrierattr_destroy(3C)
pthread_barrierattr_getpshared(3C)
pthread_barrierattr_setpshared(3C)
pthread_condattr_getpshared(3C)
pthread_condattr_setpshared(3C)
pthread_cond_reltimedwait_np(3C)
pthread_key_create_once_np(3C)
pthread_mutexattr_getprioceiling(3C)
pthread_mutexattr_getprotocol(3C)
pthread_mutexattr_getpshared(3C)
pthread_mutexattr_getrobust(3C)
pthread_mutexattr_setprioceiling(3C)
pthread_mutexattr_setprotocol(3C)
pthread_mutexattr_setpshared(3C)
pthread_mutexattr_setrobust(3C)
pthread_mutex_getprioceiling(3C)
pthread_mutex_reltimedlock_np(3C)
pthread_mutex_setprioceiling(3C)
pthread_rwlockattr_destroy(3C)
pthread_rwlockattr_getpshared(3C)
pthread_rwlockattr_setpshared(3C)
pthread_rwlock_reltimedrdlock_np(3C)
pthread_rwlock_reltimedwrlock_np(3C)
pthread_rwlock_timedrdlock(3C)
pthread_rwlock_timedwrlock(3C)
rctlblk_get_enforced_value(3C)
- acquire and release stream lock
#include <stdio.h>voidflockfile(FILE *stream);
voidfunlockfile(FILE *stream);
intftrylockfile(FILE *stream);
Theflockfile() function acquires an internal lock of a streamstream. Ifthe lock is already acquired by another thread, the thread callingflockfile()is suspended until it can acquire the lock. In the casethat the stream lock is available,flockfile() not only acquires the lock,but keeps track of the number of times it is being calledby the current thread. This implies that the stream lock canbe acquired more than once by the same thread.
Thefunlockfile() function releases the lock being held by the current thread. In the case of recursive locking, this function must be calledthe same number of timesflockfile() was called. After the numberoffunlockfile() calls is equal to the number offlockfile() calls, the streamlock is available for other threads to acquire.
Theftrylockfile() function acquires an internal lock of a streamstream, onlyif that object is available. In essenceftrylockfile() is a non-blockingversion offlockfile().
Theftrylockfile() function returns0 on success and non-zero to indicate alock cannot be acquired.
Example 1 A sample program offlockfile().
The following example prints everything out together, blocking other threads that mightwant to write to the same file between calls tofprintf(3C):
FILE iop;flockfile(iop);fprintf(iop, "hello ");fprintf(iop, "world);fputc(iop, 'a');funlockfile(iop);
An unlocked interface is available in case performance is an issue. For example:
flockfile(iop);while (!feof(iop)) { *c++ = getc_unlocked(iop);}funlockfile(iop);Seeattributes(5) for descriptions of the following attributes:
|
Intro(3),__fsetlocking(3C),ferror(3C),fprintf(3C),getc(3C),putc(3C),stdio(3C),ungetc(3C),attributes(5),standards(5)
The interfaces on this page are as specified in IEEE Std1003.1:2001. Seestandards(5).
Copyright © 2011, Oracle and/or its affiliates. All rights reserved.Legal Notices | ![]() ![]() |