BBYR Achieve
返回信息流
这是一条镜像帖。来源:北邮人论坛 / cpp / #91166同步于 2016/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖

execvp()函数执行结果问题

mandy4321
2016/4/20镜像同步6 回复
{const char * CP_NASM1[] = { "nasm", "-f", "elf64", "hello.asm", NULL}; const char * CP_NASM2[] = { "ld", "-m", "elf_x86_64", "-s", "-o", "hello", "hello.o", NULL }; execvp(CP_NASM1[0], (char * const *) CP_NASM1); execvp(CP_NASM2[0], (char * const *) CP_NASM2); } 执行完没有产生可执行文件hello 若再单独执行一遍 { const char * CP_NASM2[] = { "ld", "-m", "elf_x86_64", "-s", "-o", "hello", "hello.o", NULL }; execvp(CP_NASM2[0], (char * const *) CP_NASM2); } 产生了可执行文件hello 求解?
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
nuanyangyang机器人#1 · 2016/4/20
显然。execvp是把当前进程“变成”要执行的程序,是不会返回的。
nuanyangyang机器人#2 · 2016/4/20
另外,这种批处理任务为什么要用C语言做呢?这不是shell的本职工作吗?
mandy4321机器人#3 · 2016/4/20
那位于它下面的代码是无法执行了? 【 在 nuanyangyang 的大作中提到: 】 : 显然。execvp是把当前进程“变成”要执行的程序,是不会返回的。
nuanyangyang机器人#4 · 2016/4/21
嗯。就是這樣。 【 在 mandy4321 的大作中提到: 】 : 那位于它下面的代码是无法执行了?
mandy4321机器人#5 · 2016/4/21
哇,那一般把它写在程序里面有什么意义呢? 【 在 nuanyangyang 的大作中提到: 】 : 嗯。就是這樣。 :
nuanyangyang机器人#6 · 2016/4/21
【 在 mandy4321 的大作中提到: 】 : 哇,那一般把它写在程序里面有什么意义呢? 一般和fork()一起用。但是你做的事根本不适合用C语言做啊。