【发布时间】:2017-11-22 00:16:31
【问题描述】:
我有简单的 bash 脚本
#!/bin/bash
make
./code1_test/test_syn1
./code2_test/test_syn2
./code3_test/test_syn3
test_syn 是我的程序测试。在每个程序中,我都使用 fopen 命令打开 .txt 文件。如果我从命令行运行程序,我有一个正确的测试输出,但是当我使用这个 bash 脚本时,fopen 返回我 NULL,所以我无法打开我的 .txt 文件,也无法运行测试。为什么会发生这种情况,我该如何解决?
【问题讨论】:
-
你能创建一个最小的 test_syn 文件来重现这个吗?
-
可能是路径问题。也好把test_syn的代码贴出来。
-
您可能在程序中使用了相对路径,因此当您运行脚本时,程序会在运行脚本的目录中查找。
-
每当我看到类似“
的 is not working”之类的问题时,我可以保证两件事:发帖者是初学者, 正在工作正好。做一些基本的调试:打印出调用的返回值和 errno 值,尝试查找正在打开的文件的完整路径名等。这几乎可以肯定是当前目录/路径的问题。