execl in C programming



我有一个C程序。我注意到你不能在里面放两个高管

代码:

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/types.h>
#include <unistd.h>
int main()
{
pid_t fork(void);
int system(const char *command);
execl("/bin/sh", "sh", "-c", "kdialog --warningcontinuecancel 
"Make sure to include: n n 1. py_lcd folder n 2. 4x20 
Raspberry Pi LCD Display n 3. Python 2.7.12 to be installed n 
n If you are missing something, kill the program process and 
get them."", (char *) 0);
sleep(1);
execl("/bin/sh", "sh", "-c", "kdialog --msgbox "Setting up files..." --title "Installing..."", (char *) 0);
return(0);
}

如果有办法绕过这一点,或者我犯了一个错误,有人能帮我吗???

exec函数族在成功时不会返回。它们将运行的进程替换为execd。如果您想在子进程中运行程序(与system不同,具有完全控制(,则需要使用fork+exec+wait(或posix_spawn(。

execl之后写的任何东西都是死代码。execl的主要目的是为新进程重用当前进程信息,以提高性能。您将使用共享执行execl的当前进程的进程信息结构(pid、堆栈、堆等(。

我自己找到了答案。有一个system((命令的工作原理完全相同,但您可以将其插入代码中的任何位置,而不会出现问题

相关内容

  • 没有找到相关文章

最新更新