system命令需要注意的地方
2018-03-06 10:24
274 查看
子进程终止或者停止时,会将SIGCHID信号发送给其父进程,但是系统默认是忽略此信号。如果父进程希望被告知其子系统的这种状态,则应捕捉此信号。
执行system函数时,SIGCHLD信号,最好被显示,因为system函数中,使用到了fork(),waitpid.如果父进程忽略了SIGCHID信号,waitpid就没有不能得到子进程的SIGCHLD信号,那么处理的返回值就会有问题。system的返回值也会有问题。通常的做法是:
signal( SIGCHLD, SIG_DFL );
system( command );
signal( SIGCHLD, SIG_IGN );
建议: 最好自己利用fork和waitpid封装一个类似system的函数, 并且多一个超时的参数配置。
形如:SAFE_system(char* cmd, long timeout)
执行system函数时,SIGCHLD信号,最好被显示,因为system函数中,使用到了fork(),waitpid.如果父进程忽略了SIGCHID信号,waitpid就没有不能得到子进程的SIGCHLD信号,那么处理的返回值就会有问题。system的返回值也会有问题。通常的做法是:
signal( SIGCHLD, SIG_DFL );
system( command );
signal( SIGCHLD, SIG_IGN );
建议: 最好自己利用fork和waitpid封装一个类似system的函数, 并且多一个超时的参数配置。
形如:SAFE_system(char* cmd, long timeout)
相关文章推荐
- Crontab 命令需要注意的地方
- CGI程序里调用system、popen运行命令需要root权限---boa配置需要注意的问题
- ren 命令在使用通配符时需要注意的地方
- CMD下使用javac和java命令需要注意的地方
- stsadm -o export 命令的一个需要注意的地方
- stdlib.h中system函数一定需要注意的地方
- 关于Android创建Activity需要注意的地方
- Socket:java与C之间的文件传送<3>(JAVA与C通信需要注意的地方)
- 使用git需要注意的地方
- web应用想要达到完全的线程安全,需要注意哪些地方?
- 写正确函数需要注意的地方:最长递减子序列
- Oracle中一次执行多条SQL语句需要注意的地方
- HttpURLConnection使用中需要注意的地方
- Knockout 学习笔记1 with对象用法需要注意的地方
- 指针的类型(需要注意的一些地方)
- WPF 个人经验总结:需要注意的地方
- 系统开发在设计时需要注意的地方
- ACM中用Java水高精度需要注意的2个地方
- web项目,tomcat转到weblogic需要注意的地方
- access中使用SQL语句需要注意的几个地方