免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 1826 | 回复: 13
打印 上一主题 下一主题

进程问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2003-12-18 17:18 |只看该作者 |正序浏览
请问:父进程创建一个子进程,怎样才能保证父进程先执行呢?
用sleep()可以,但它的参数必需是秒,请问有微秒级的等待函数吗?

论坛徽章:
0
14 [报告]
发表于 2003-12-21 19:47 |只看该作者

进程问题

多谢大家,对,用sigsuspend可以实现父子进程的同步!

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
13 [报告]
发表于 2003-12-19 22:22 |只看该作者

进程问题

看《unix高级环境编程》信号那一章,好像
是第十章,有父子进程同步的代码。

论坛徽章:
0
12 [报告]
发表于 2003-12-19 18:34 |只看该作者

进程问题

sigsuspend

论坛徽章:
0
11 [报告]
发表于 2003-12-19 17:39 |只看该作者

进程问题

我认为“果父进程的信号发的过快,子进程好像没得到这个信号”说法不恰当,只要父进程发了,子进程一定会收到的,要不然不就是系统不可靠吗?收不到的原因可能是这样:在子进程设置信号处理函数以前,就收到了这个信号。解决的办法就是在fork之前先把信号处理函数设好。

论坛徽章:
0
10 [报告]
发表于 2003-12-19 17:24 |只看该作者

进程问题

其实,我发觉这种方法不一定好。我刚才试验的时候有这么一种情况:如果父进程的信号发的过快,子进程好像没得到这个信号,pause()并不返回。但是,我如果让父进程sleep(10),然后再kill(child_pid,SIGUSR1),子进程的pause()返回,继续执行下面的语句。这就让人很不爽了,父进程要在什么时候发信号才能保证子进程的pause()返回呢?各位可以试一下!另外,请问一下,在Linux下有不有哪个函数可以判断一个文件存不存在,不用fopen返回-1判断,因为它返回-1不一定是文件不存在!

论坛徽章:
0
9 [报告]
发表于 2003-12-19 16:34 |只看该作者

进程问题

一般是用SIGUSR1或SIGUSR2

论坛徽章:
0
8 [报告]
发表于 2003-12-19 15:56 |只看该作者

进程问题

知道了,要给那个信号设一个处理函数pause才会返回。

论坛徽章:
0
7 [报告]
发表于 2003-12-19 15:42 |只看该作者

进程问题

关于用信号来实现,我试了一下。父进程创建子进程后,我用pause()让子进程等待,然后父进程用kill()向子进程发一个信号,但我试了好几个信号,有的直接让子进程中止了,而有的根本不能中止pause(),子进程还在那里等。我的本意是要让子进程的pause返回,然后执行pause后的语句。请问用什么信号,怎么处理ne

论坛徽章:
1
荣誉版主
日期:2011-11-23 16:44:17
6 [报告]
发表于 2003-12-18 19:29 |只看该作者

进程问题

觉得等待信号比较可靠。
  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP