3
回答
linux 下system函数的问题
华为云实践训练营,热门技术免费实践!>>>   

问题是这样的:

我在程序中使用了system函数做了一个重定向的操作,我们的平台分为三个部分:底层硬件,linux应用程序和上层C++应用程序,当我只运行linux应用程序测试时,一切正常,但是当跟我们的上层应用程序一起运行的时候,linux应用时不时的就会在system函数那里挂掉,整个程序都退出来了,感觉非常奇怪,linux应用程序和上层C++应用程序只是进行了网络连接,上层应用程序并没有执行其他操作。但是只要上层应用程序跟linux应用程序一起运行,就会时不时的把linux应用程序杀掉。请哪位有经验的朋友指点一下,万分感谢

举报
孔晓波
发帖于5年前 3回/1K+阅
共有3个答案 最后回答: 5年前

有几个问题需要确认一下:

1、“当我只运行linux应用程序测试时,一切正常”-怎么测的?

2、上层C++应用程序与linux应用程序是两个完全独立的进程,它们之间靠网络连接进行通信是吗?

3、linux应用程序里为什么要使用system函数?

使用system函数实际上调用fork()创建一个子进程,之后在子进程中调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。

引用来自“linuxhunter”的答案

有几个问题需要确认一下:

1、“当我只运行linux应用程序测试时,一切正常”-怎么测的?

2、上层C++应用程序与linux应用程序是两个完全独立的进程,它们之间靠网络连接进行通信是吗?

3、linux应用程序里为什么要使用system函数?

使用system函数实际上调用fork()创建一个子进程,之后在子进程中调用/bin/sh-c string来执行参数string字符串所代表的命令,此命令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁置,SIGINT和SIGQUIT 信号则会被忽略。

1.直接在板子上运行linux应用程序,一切正常

2.是通过网络进行通信的

3.使用system是想要直接使用命令完成某些功能。我这里的作用是查找一个文件并把它重定向到一个文件中

顶部