C编程中的execl
execl in C programming
我有一个 C 程序。我注意到你不能在里面放 2 个 execl。
代码:
#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
函数族在成功时不会 return。他们 将 运行ning 进程替换为正在 exec
ed 的进程。如果你想运行子进程中的一个程序(完全控制,不像system
),你需要使用fork
+ exec
+ wait
(或者 posix_spawn
).
execl 之后写的任何东西都是死代码。 execl 的主要目的是为新进程重新使用当前进程信息以提高性能。您将使用与执行 execl 的当前进程共享相同的进程信息结构(pid、堆栈、堆等)。
我自己找到了答案。有一个 system() 命令,它的工作原理完全相同,但您可以毫无问题地将它插入代码中的任何位置
我有一个 C 程序。我注意到你不能在里面放 2 个 execl。
代码:
#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
函数族在成功时不会 return。他们 将 运行ning 进程替换为正在 exec
ed 的进程。如果你想运行子进程中的一个程序(完全控制,不像system
),你需要使用fork
+ exec
+ wait
(或者 posix_spawn
).
execl 之后写的任何东西都是死代码。 execl 的主要目的是为新进程重新使用当前进程信息以提高性能。您将使用与执行 execl 的当前进程共享相同的进程信息结构(pid、堆栈、堆等)。
我自己找到了答案。有一个 system() 命令,它的工作原理完全相同,但您可以毫无问题地将它插入代码中的任何位置