进程间通过信号灯的通信。 信号灯的创建函数semget(): 信号灯的删除函数semctl(): 例子1:信号灯的创建和删除,通过semget函数创建,调用semctl函数删除。 #include"sys/types.h" #include"signal.h" #include"unistd.h" #include"stdio.h" #include"stdlib.h" #include"sys/sem.h" int main() { int semid; semid=semget(IPC_PRIVATE,3,0777); if(semid<0) { printf("creat semaphore failure\n"); return -1; } printf("creat semaphore success\n"); system("ipcs -s"); //delete semaphore semctl(semid,0,IPC_RMID,NULL); system("ipcs -s"); return 0; } 运行结果如图: 成功创建3个信号灯后,又成功删除了。 例子2:一般我们可以用全局变量来实现父子线程之间的同步,如下thread.c的内容:通过定义一个全局变量thread_inter来实现父子线程的同步问题。 #include<pthread.h> #include