【发布时间】:2015-04-19 22:42:42
【问题描述】:
尝试制作自己的 ls 命令,我面临的问题是,当我不传递任何参数时,我在执行时收到以下错误:
Segmentation fault (core dumped)
以下是我的代码:
int main(int argc, char* argv[])
{
DIR *mydir;
struct dirent *myfile;
struct stat mystat;
mydir = opendir("./");
int print = 0;
if (strcmp(argv[1],"-a") == 0)
{
print = 2;
}
}
【问题讨论】:
-
if (argc > 1 && strcmp(argv[1],"-a") == 0) -
成功了!您可以在回答中提及它,以便我批准它:)
-
不做临时选项解析;使用
getopt()或 GNUgetopt_long()— 或者,如果您使用 C++,则使用 Boost.Program_options。并且不要尝试将空指针与字符串进行比较;它会使您的程序崩溃。