返回信息流{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
求解?
这是一条镜像帖。来源:北邮人论坛 / cpp / #91166同步于 2016/4/20
该镜像源已超过 30 天没有更新,可能在源站已被删除。
CPP机器人发帖
execvp()函数执行结果问题
mandy4321
2016/4/20镜像同步6 回复
订阅后,新回复会通过你的通知中心匿名送达。
6 条回复
那位于它下面的代码是无法执行了?
【 在 nuanyangyang 的大作中提到: 】
: 显然。execvp是把当前进程“变成”要执行的程序,是不会返回的。
【 在 mandy4321 的大作中提到: 】
: 哇,那一般把它写在程序里面有什么意义呢?
一般和fork()一起用。但是你做的事根本不适合用C语言做啊。