asometh revision 3f54fd611f536639ec30dd53c48e5ec1897cc7d9
4406N/A# aso method feature tests
4406N/A
4406N/Aaso fcntl note{ fcntl(F_SETLCK[W]) work }end link{
4406N/A #include <sys/types.h>
4406N/A #include <unistd.h>
4406N/A #include <fcntl.h>
4406N/A
4406N/A int main()
4406N/A {
4406N/A struct flock lock;
4406N/A
4406N/A lock.l_type = F_WRLCK;
4406N/A lock.l_whence = SEEK_SET;
4406N/A lock.l_start = 0;
4406N/A lock.l_len = 1;
4406N/A return fcntl(1, F_SETLKW, &lock) < 0;
4406N/A }
4406N/A}end
4406N/A
4406N/Aaso semaphore note{ semget semop semctl work }end link{
4406N/A #include <sys/types.h>
4406N/A #include <sys/stat.h>
4406N/A #include <unistd.h>
4406N/A #include <fcntl.h>
4406N/A #include <sys/ipc.h>
4406N/A #include <sys/sem.h>
4406N/A
4406N/A int main()
4406N/A {
4406N/A int id;
4406N/A struct sembuf sem;
4406N/A
4406N/A if ((id = semget(IPC_PRIVATE, 16, IPC_CREAT|IPC_EXCL|S_IRUSR|S_IWUSR)) < 0)
4406N/A return 1;
4406N/A sem.sem_num = 0;
4406N/A sem.sem_op = 1;
4406N/A sem.sem_flg = 0;
4406N/A if (semop(id, &sem, 1) < 0)
4406N/A return 1;
4406N/A if (semctl(id, 0, IPC_RMID) < 0)
4406N/A return 1;
4406N/A return 0;
4406N/A }
4406N/A}end
4406N/A