我正在尝试编写一个通过在写模式下打开文件来清空文件的程序。也应该可以使用*等通配符,但是在这种情况下,我希望它忽略文件本身,因此程序不会删除自身。
为了测试这一点,我尝试了:
int main(int argc, char *argv[]) {
for (int i = 1; i <= argc; ++i) {
if(strcmp(argv[i], "empty"))
printf("File detected\n");
}
}
然后我跑
./empty empty
我遇到分段错误,并且未打印“检测到文件”。这是为什么?
You are accessing at
argv[argc]
which isNULL
and passingNULL
tostrcmp
causes the segfault..更改
至