【发布时间】:2017-04-28 15:49:46
【问题描述】:
谁能帮我解决我的错误...
接下来会发生什么:
我的程序被称为“打开”
这是我的输出:
user@host:~$ ./open open A
A
open
Error: Cannot creat ./././.: Is a directory
./././.user@host:~$
为什么输出结果是././././ 而不是./A/open?
我知道问题来自av[2]。
printf("%s\n", av[2]);
printf("%s\n", av[1]);
snprintf(av[2], sizeof(av[2]), "./%s/%s", av[2], av[1]);
printf("%s", av[2]);
【问题讨论】:
-
sizeof(av[2])是指针的大小,大概是4字节。 -
所以我必须将其更改为其他内容?我尝试删除它,但结果是分段错误。
-
为什么要将结果存储到
av[2]?除了已经包含的内容之外,它可能没有空间容纳任何额外的字符。 -
请显示更多代码。
av是什么?阅读:minimal reproducible example: -
程序参数的通常名称是
argv[]。使用你自己的名字会使问题变得混乱。