我的C程序中有chdir()问题 - 只有在Linux上运行时(在Mac上运行正常)。我已经删除了我的代码。
这样的事情很好:
chdir("/Documents");
但是当我尝试将其作为变量传递时,它不想工作。
char *home_directory;
home_directory = malloc(80);
chdir(home_directory);
从我的代码中的其他位置读取主目录,如果需要,我可以发布我是如何做到的。
感谢。
答案 0 :(得分:6)
由于您正在从文件中阅读home_directory
,因此在将其用作chdir
的参数之前,是否忘记删除尾随换行符和任何其他虚假字符?
答案 1 :(得分:2)
尝试做一些错误检查,像这样;
char *home_directory;
home_directory = malloc(80);
/* ...fill the home directory... */
if (chdir(home_directory) == -1)
perror("chdir");
..然后使用man chdir
哟可以查找错误代码的含义。
答案 2 :(得分:1)
由于chdir
是Linux上的系统调用,因此您只需使用strace
程序即可查看您的程序实际执行的操作。这并不能让您免于在代码中处理错误;明显。它只是帮助您跟踪您的程序所采取的操作。