temp.txt",number);      printf("commandStr: %sn",commandStr);      system(commandSt....">

当前位置:  技术问答>linux和unix

关于system 调用shell 产生sh进程,如何把sh进程关掉...

    来源: 互联网  发布时间:2016-07-13

    本文导语:  #include   void amendHeadOfConfig(int number)  {      char commandStr[40];      sprintf(commandStr,"sed '1 c %d' 1.txt > temp.txt",number);      printf("commandStr: %sn",commandStr);      system(commandStr);      system("rm -f 1.txt");     ...

#include  
void amendHeadOfConfig(int number) 

    char commandStr[40]; 
    sprintf(commandStr,"sed '1 c %d' 1.txt > temp.txt",number); 
    printf("commandStr: %sn",commandStr); 
    system(commandStr); 
    system("rm -f 1.txt"); 
    system("mv temp.txt 1.txt"); 



int main() 

amendHeadOfConfig(5); 
while(1);

每次调用system 都会产生一个sh的进程。如果程序不退出 就会一直产生sh的进程。
怎样才能在退出之前把由system调用sh的进程退出掉。
如上面的程度。我看ps的时候一直会有三个sh在跑..
如何调用一个system后,相应的sh进程也退出呢???
请赐教..

|
sh 进程或者说命令执行完了就会自己退出。。。。 不存在你说的情况阿。

你什么系统 ?

|
fork+execl
你说的sh进程会在任务完毕后退出。

你说的现象之有可能该进程没有执行完你的任务。

|
这个很有可能并不是 system 引起的。


如果用 fork + execl  或者 popen, 就有可能引起, 但 system 不会。
你查查你的程序, 是不是有其他地方有 这些调用?

|
system 是fork exec waitpid的组合
sh进程执行完了之后 会被主进程收回的
可能是你的主进程一直在while死循环导致的吧 

|
按说命令执行完后就退出了吧!

|
其实已经退出了。

我在aix机器上测试,system之后,sh已经退出。

不知道楼主怎么测试的?
怎么查看进程依然存在

|
理论上是退出的。

    
 
 

您可能感兴趣的文章:

  • linux下system函数调用shell命令后,怎样让主进程不等子进程返回,接着执行(在线)?
  • 一用打印机。。system进程就占用cpu100%,大家知道是什么原因? 怎么解决?
  • 关于父,子,孙进程的创建和退出问题?????(用system v信号量集)
  • 怎么用system()调用另一个程序hannoi()形成一个子进程
  • 如何取得一个进程的system time和user time?
  • 请教:使用system(命令)或者exec(命令)启动一个进程执行命令,如何判断这个命令是否启动成功或正在运行?
  • 请教:在程序里用system启动一个命令,如何获得这个进程的正常输出和错误输出到一个字符串里?
  • 守护进程为什么对system函数有影响?(看代码)
  • 请问守护进程代码里面加入system()命令行,可以执行吗?
  • System V 进程共享内存通信的问题
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • system()调用 与 ioctl()调用
  • 调用system(“命令”)和函数调用之间有什么不同?效率?
  • system调用shell命令时的一个疑问
  • C中用system系统调用执行command,执行过程中死锁,如何处理?
  • 救命啊,一个system调用的问题
  • 请问:C语言中system怎样调用shell,谢谢!急!!!!!
  • system系统调用的问题
  • linux system函数调用问题
  • 急!重分相谢!UNIX下如何判断system调用ftp成功?
  • 为什么调用system是一个安全性漏洞??
  • Unix下System函数实现中为何要使用shell去调用执行程序?
  • php 使用system() 调用c程序的问题
  • 怎么让system调用使用ksh?
  • linux下system 函数调用不成功,怎么回事?
  • 在WINDOWS下,调用DOS命令的是system,在linux下有没有相同的命令
  • C++是否可以直接调用所有的system call?
  • 为什么一调用system就挂了
  • Unix下C语言中删除文件,我想到调用system命令的方式,还有别的方法么?
  • system调用shell问题,急
  • 编程调用system(netstat -i > /tmp/netinfo)的问题
  • java命名空间javax.sound.midi类shortmessage的类成员方法: system_reset定义及介绍
  • System.exit(0);和System.exit(1)有什么区别?
  • java命名空间javax.swing.text.html.parser接口dtdconstants的类成员方法: system定义及介绍
  • 请问System.out.print和System.out.printIn有什么不同?
  • java命名空间javax.sound.midi类sysexmessage的类成员方法: system_exclusive定义及介绍
  • 谁有 novell 3.12 的SYSTEM_1 和 SYSTEM_2 的软盘内容吗?[分不够可增加]
  • java命名空间javax.xml.transform类outputkeys成员方法: doctype_system定义参考
  • POSIX.1要求system忽略SIGINT和SITQUIT,阻塞SIGCHLD,求解释。UNIX环境高级编程 system函数
  • java命名空间javax.swing类jfilechooser的类成员方法: file_system_view_changed_property定义及介绍
  • 请问java.lang.System是一个类吧??那么System.out.print()中的out充当什么角色呢?还是类???
  • java命名空间java.lang.management类managementfactory的类成员方法: operating_system_mxbean_name定义及介绍


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3