当我 运行 使用 bash 编程时,C fopen 不工作
C fopen isn't working, when I run program with bash
我有简单的bash脚本
#!/bin/bash
make
./code1_test/test_syn1
./code2_test/test_syn2
./code3_test/test_syn3
test_syn 是我的程序测试。在这些程序中的每一个中,我都使用 fopen 命令打开 .txt 文件。如果我从命令行 运行 程序,我有一个正确的测试输出,但是当我使用这个 bash 脚本时,fopen return me NULL,所以我无法打开我的 . txt 文件,我无法 运行 测试。为什么会发生这种情况,我该如何解决?
如果您使用 fopen()
和相对路径,您应该从其目录执行脚本。试试这个:
#!/bin/bash
make
(cd code1_test/ && exec ./test_syn1)
(cd code2_test/ && exec ./test_syn2)
(cd code3_test/ && exec ./test_syn3)
否则您的程序会尝试在您的 运行 您的 Bash 脚本所在的目录中打开您的 .txt
,这不是您想要的。
如果您希望能够从任何地方 运行 您的程序,您可以在 fopen()
.
时尝试不使用相对路径
我有简单的bash脚本
#!/bin/bash
make
./code1_test/test_syn1
./code2_test/test_syn2
./code3_test/test_syn3
test_syn 是我的程序测试。在这些程序中的每一个中,我都使用 fopen 命令打开 .txt 文件。如果我从命令行 运行 程序,我有一个正确的测试输出,但是当我使用这个 bash 脚本时,fopen return me NULL,所以我无法打开我的 . txt 文件,我无法 运行 测试。为什么会发生这种情况,我该如何解决?
如果您使用 fopen()
和相对路径,您应该从其目录执行脚本。试试这个:
#!/bin/bash
make
(cd code1_test/ && exec ./test_syn1)
(cd code2_test/ && exec ./test_syn2)
(cd code3_test/ && exec ./test_syn3)
否则您的程序会尝试在您的 运行 您的 Bash 脚本所在的目录中打开您的 .txt
,这不是您想要的。
如果您希望能够从任何地方 运行 您的程序,您可以在 fopen()
.