作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
int main (int argc, const char * argv[])
{
printf("start\n");
char *const parmList[] = {"/bin/ls", "-l", NULL};
execv("/bin/ls", parmList);
return 0;
}
我用 GCC4.2 编译,有什么想法可能会崩溃吗?我在 xcode 中没有收到任何错误消息。
编辑:用户错误。 “崩溃”意味着 xcode 在运行程序时卡住了。按“继续”可以正常工作。
最佳答案
该代码在我的环境(Ubuntu 10 下的 gcc 4.4.3)中运行和编译良好。这让我相信您遇到的问题与您认为的问题不同:-)
<小时/>pax@pax-desktop:~$ ./testprog
start
total 2152
drwxr-xr-x 11 pax pax 4096 2010-10-02 08:23 Pax
: :
----r-S--- 1 pax pax 0 2010-08-23 18:58 xyz
pax@pax-desktop:~$ gcc --version
gcc (Ubuntu 4.4.3-4ubuntu5) 4.4.3
Copyright (C) 2009 Free Software Foundation, Inc.
This is free software; see the source for copying conditions. There is NO
warranty; not even for MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
<小时/>
尝试以下代码以查看实际的 exec
是否失败。如果是,它应该告诉你原因。如果不是,那么您根本看不到 rc
输出。
#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <errno.h>
int main (int argc, const char * argv[])
{
int rc;
printf("start\n");
char *const parmList[] = {"/bin/ls", "-l", NULL};
rc = execv("/bin/ls", parmList);
printf ("rc = %d, errno = %d\n", rc, errno);
return 0;
}
还要检查以确保 /bin/ls
是您期望的内容(例如,可执行文件,而不是脚本)。
有必要澄清一下“崩溃”的含义。它只是不产生任何输出吗?它转储核心文件吗?它是否会使您的整个操作系统崩溃,导致重新启动?
关于c - 为什么 execv 可能会崩溃?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3843801/
java.lang.Throwable 的哪些子类可能被空语句抛出? 通过短语“空语句”,我指的是“无”、“分号”和“分号”: // .... A(); B(); C(); try { //
我是一名优秀的程序员,十分优秀!