///////////////////////////////////////////////////////
// int sem_timedwait(sem_t *restrict sem,
// const struct timespec *restrict abs_timeout);
//
//
/////////////////////////////////////////////////////
#include <stdio.h>
#include <errno.h>
#include <unistd.h>
#include <semaphore.h>
#include <sys/stat.h>
#include <fcntl.h>
#include <time.h>
int main() {
sem_t mysemp;
struct timespec ts;
int sts, val;
if ( sem_init (&mysemp, 0, 0) == -1 ) {
perror("sem_init is err");
return P-1;
}
ts.tv_sec=time(NULL)+1; // 重点
ts.tv_nsec=0;
/* Try to lock Semaphore */
sts = sem_timedwait(&mysemp, &ts);
....
sem_destroy(&mysemp);
}