易截截图软件、单文件、免安装、纯绿色、仅160KB

linux wait()不填参数 等待子线程

#include <semaphore.h>
#include <unistd.h>
#include <stdio.h>
#include <fcntl.h>

void print(pid_t pid);
sem_t *sem;/*定义posix有名信号灯*/
int val;/*定义信号灯当前值*/

int main(int argc,char *argv[])
{
int n=0;

if(argc!=2)
{
printf("please input a sem name!\n");
exit(1);
}

sem=sem_open(argv[1],O_CREAT,0644,2);/*打开一个信号灯,初值设为2*/
while(n++ <5)/*循环创建5个子进程,使他们同步运行*/
{
if(fork()==0)
{
sem_wait(sem);/*申请信号灯*/
print(getpid());/*调用共享代码段*/
sleep(1);
sem_post(sem);/*释放信号灯*/
printf("I'm finished,my pid is %d\n",getpid());
exit(0);//return 0;
}
}

wait();/*等待所有子进程结束*/-----这里wait可以不填参数等待所有子进程吗?
//while(wait(NULL)!= -1)
// ;
sem_close(sem);
sem_unlink(argv[1]);
        printf("---reach here---\n");
exit(0);
}

void print(pid_t pid)
{
printf("I get it,my pid is %d\n",pid);
sem_getvalue(sem,&val);
printf("Now the semvalue is %d\n",val);
}

程序运行结果:
[ken@localhost 3]$ ./sem_in_mprocess test        &


相关问答:

关于LINUX操作系统的安装

    我没有安装操作系统的经验,即使是WINDOWS。现在想在LINUX操作系统大环境下学C语言,又要买本本,请问如果操作系统安装不当,会不会对电脑造成什么大的破坏?有没有必要先买一个二手电脑练一下LINUX的 ......

Linux 目录问题

Linux新手,请大哥大姐不要见笑。

我用root用户登录到Linux系统。在根目录下面建了目录dir1,后用命令cd /dir1进入到dir1目录下,然后再用mkdir dir2建立了目录dir2 ,再后来用命令cd /dir2是,提示为:-bush ......

Linux小问题

Linux不正常关机导致系统坏,请问怎么检查和修复系统?
在刚启动的时候会有提示的。

修复可以靠livecd
或者把基本系统部分重新安装即可

是不是系统编程了read-only的啦?无法往系统写入数据啊?
有的情 ......

请问有没有全中文的linux系统?

我用过ubuntu8.10版本,从verycd下载的。

下载后,是半英文。且我对linux系统的操作理解不深,因此装中文输入法都搞了好久。

然后按照网上的教程更新中文界面,但是更新了1晚上后提示中断……雷。
......

请问Ubuntu Linux 怎么实现离线更新呢?

现在我有两台机 一个在家  一个在学校  在学校的那台机子不能上网  我把家里的那台机子更新到最新了  然后把 /var/cache/apt/archives  下的所有Deb包复制到学校那台没联网的机子上了&nbs ......
© 2009 ej38.com All Rights Reserved. 关于E健网联系我们 | 站点地图 | 赣ICP备09004571号