这是我得到的警告。
copyit.c: In function ‘main’:
copyit.c:15: warning: assignment makes integer from pointer without a cast
copyit.c:16: warning: assignment makes integer from pointer without a cast
这对应的代码行是以指针(*)开头的代码行。
char source[128],target[128],buffer[512];
if(argc==3) {
*source = argv[1];
*target = argv[2];
}
我只想分配这两个东西,这样我就可以从命令行传递它们,然后我可以在我的句柄中使用它们(例如:inhandle = open(source,O_RDONLY); 谢谢。
答案 0 :(得分:4)
argv是一个字符串指针数组。您应该将source
和target
更改为char *
或const char *
而不是数组,并将代码更改为
source = argv[3];
target = argv[4];
这将使它成功。如果将字符串复制到数组中,它还可以防止缓冲区溢出。这也意味着您的应用将处理长文件路径。
答案 1 :(得分:-1)
使用string.h中的strcpy():
strcpy(source,argv[1]);
strcpy(target,argv[2]);