execv相关内容

C execv() 函数是否终止子进程?

这是我的代码的细分. 我有一个程序可以派生一个孩子(并将孩子的 pid 注册到一个文件中),然后做自己的事情.孩子成为程序员用 argv 有尊严的任何程序.当子进程完成执行时,它会向父进程发送一个信号(使用 SIGUSR1),以便父进程知道从文件中删除子进程.父级应该停止一秒钟,通过更新其表来确认已删除的条目,然后从中断的地方继续. pid = fork();开关(PID){情况1:{退出 ..
发布时间:2022-01-19 10:46:56 其他开发

使用 execv(C 语言)从 linux 命令提示符运行命令

到目前为止,我唯一感到困惑的部分是如何将 execv 设置为第一个参数作为当前工作目录.我试过两个“."和“~",两者都没有在屏幕上执行任何操作;“/"也是一样和“/~".我对如何让 execv 运行这样的东西感到困惑: $ ./prog ls -t -al 并让它在当前目录或与文件所在的目录相同的目录中执行程序执行后的命令(这些命令存储在argv中). 我的代码: #include ..
发布时间:2021-11-17 21:16:10 服务器开发

将消息从子进程发送到父进程

我正在执行父代码.然后,我先执行fork,然后执行execvpe.我"execvpe"的新程序会抛出很多控制台消息,我想隐藏这些消息. 我是否可以将子进程中的所有stdout和stderr消息重定向到文件上? 我尝试了close(1),这样我就不会在控制台(stdout)上转储消息了,这没有帮助 解决方案 pid_t pid = fork(); /* Child process ..
发布时间:2020-11-09 23:31:25 其他开发

信号量阻止儿童

我有一个问题,我想做一个fork,例如一个由20个进程创建的fork,这个fork被创建,在没有创建最后一个fork之前不应该做任何事情,而我想使用信号量来做,我该如何做呢?实施吗? for (i=0; i ..
发布时间:2020-11-09 23:25:52 其他开发

C execv()函数是否终止子进程?

这里是我的代码细分. 我有一个程序可以派生一个孩子(并将孩子的pid注册到文件中),然后执行自己的操作.子级变为程序员用argv修饰的任何程序.当子级执行完毕后,它将使用SIGUSR1发送信号给父级进程,因此父级知道要从文件中删除该子级.父级应该停一秒钟,通过更新其表来确认已删除的条目,然后从上次中断的地方继续. pid = fork(); switch(pid){ case -1:{ ..
发布时间:2020-11-09 23:04:02 其他开发

使用execv(C语言)从linux命令提示符运行命令

到目前为止,我唯一困惑的是如何使用第一个参数将execv设置为当前工作目录.我都尝试过“."和“〜",两者均未在屏幕上执行任何操作;与"/"相同.和"/〜".我对如何让execv运行如下内容感到困惑: $ ./prog ls -t -al 在程序执行后(存储在argv中)在当前目录或与文件所在的目录相同的目录中执行命令(根据使用该文件的人而有所不同). 我的代码: #incl ..
发布时间:2020-09-07 01:43:59 服务器开发

Execv Linux printf不起作用

我正在尝试使用以下C代码运行可执行文件: int main(int argc, char *argv[]) { printf("hello.\n"); sleep(2); if (execlp("ls","ls","-l",NULL) == -1) printf("Error occured during execute ls.\n" ..
发布时间:2020-05-01 10:30:49 服务器开发

prctl(PR_SET_PDEATHSIG,SIGNAL)在父线程退出时调用,而不是父进程退出

我有一个进程是分叉到子进程。如果父进程存在,则子进程不应存在。所以,我调用:: prctl(PR_SET_PDEATHSIG,SIGKILL)在子进程中杀死它,如果父死亡。最终发生的是父线程调用pthread_exit,并且该线程最终成为杀死子进程的催化剂。 这是我的代码: parent.cpp: #include ..
发布时间:2016-10-28 06:43:07 C/C++开发

如何使子进程在后台运行到前台

如果我使用fork()和execv()生成几个子进程在后台运行,我想把它们中的一个到前台,我该怎么办? 我试图写一个shell,可以在前台或后台启动进程。 解决方案 “和”foreground“不是一般用于进程的术语,而只适用于可以按需等待作业的shell。 ..
发布时间:2016-10-20 22:36:08 服务器开发

fork()的杀()和execv()

我在这里想要一个小单元测试。但正如我所期望的程序不能正常工作。 的char * ARGS [2]; ARGS [0] =(字符*)“的/ usr / bin中/火狐”; ARGS [1] = NULL; PID =叉(); 的printf(“分叉和我的PID为%d \\ n”,PID); //检查错误 如果(PID℃,){ 的pri ..
发布时间:2016-08-24 13:44:32 C/C++

execv怎么会从管道输出?

指的是旧的作业问题: / *实施“的/ usr / bin中/ PS -ef |在/ usr /斌/更多的”* / 使用管道。 的#include<&stdio.h中GT; #包括LT&;&unistd.h中GT; #包括LT&;&stdlib.h中GT;诠释的main() { INT FDS [2]; INT孩子[2]; 的char * argv的[3]; 管(FDS) ..
发布时间:2016-08-24 13:14:04 C/C++

重定向execvp的输出转换成在C文件

我不知道我做错了......但这里是正在执行的code的片段: 如果(叉()== 0) { //子 INT FD =开放(文件名,O_RDWR | O_CREAT,S_IRUSR | S_IWUSR); dup2(FD,1); //使标准输出到文件 execvp(“LS”,“LS”); 关闭(FD); ..
发布时间:2016-08-23 11:40:19 C/C++

指针失去其价值+ execv编译警告

我希望我没有错过过类似的问题。 我想code我自己的一个小型外壳,采用原始的C函数。 我得到的东西应该工作,但我有一个指针,使一切错误。 我的 adrCmd 指针应该从 searchCmd()函数命令路径字符串,并保持相同的值在主功能。 在的事实:它指向右边值 searchCmd(),但不是在的main() 这里的code: INT searchCmd(字符* CMD,字符* adr ..
发布时间:2016-08-17 23:01:45 C/C++