如何让我的程序接受带空格的命令行参数?
另一个编辑:我刚刚认识到该程序是从一个 shell 脚本启动的,该脚本为程序的执行设置了环境。由于有一些外部库,LD_LIBRARY_PATH
设置为当前工作目录:
#!/bin/sh
ARCH=`uname -m`
export LD_LIBRARY_PATH=".:lib/magic/linux-${ARCH}"
./data_sniffer.bin $*
exit $?
这个问题肯定与$*
. 是否有任何解决方案可以正确转发命令行参数?
这是来自的代码片段main()
:
if (stat(argv[1], &lStat) != 0)
{
fprintf(stderr, "Cannot stat(2) given file: %s. \n", argv[1]);
return EXIT_FAILURE;
}
我正在使用以下参数启动我的程序:
./data_sniffer /mnt/pod/movies/some\ test\ movie\ file.avi
生成的错误消息如下所示:Cannot stat(2) given file: /mnt/pod/movies/some.
有人知道这里有什么问题吗?我认为我不是第一个遇到这个问题的人(虽然,我在这里找不到相关的问题)。