我尝试从终端参数获取可能是文件名的字符串。我想知道为什么会出现段错误。
#include <stdio.h>
#include <string.h>
int main(char *argv[]){
char somefile[sizeof(argv)];
strncpy(somefile,argv[0],sizeof(argv));
printf("The file name is: %s", somefile);
return 0;
}
最佳答案
要获取 argv 的长度,只需执行 strlen(argv[0])
即可。
一切都因这个重大问题而变得复杂起来。 strncpy
应该使用字符串的长度,除此之外它似乎应该有效。
关于c - 由终端参数引起的段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48914467/