我正在编写一个C程序,基本上应该更改目录并调用另一个程序。我试过了:
system("cd ... | ./test.exe");
但它似乎不起作用。
答案 0 :(得分:2)
当然,你想做:
cd /this/is/a/dir && ./command
答案 1 :(得分:1)
尝试:
system("cd ... ; ./test.exe");
(我假设...是您目录的占位符。)
如果这不起作用,请考虑创建一个短脚本(称之为script.sh):
#!/bin/sh
cd ...
./test.exe
然后执行
system("./script.sh");
答案 2 :(得分:1)
我将忽略system
函数的使用,并回答好像在命令行输入管道命令一样,为了说明这一点:
当您创建像cd somedir | ./test.exe
这样的管道时,允许shell在单独的子shell环境中运行管道的每个命令。此外,无法保证它们将以严格的从左到右的顺序执行。因此cd命令不会以您期望的方式影响test.exe的环境。作为shell内置的cd
只能影响它执行的shell的环境,在这种情况下,它将是作为设置管道的一部分创建的子shell,而不是输入管道命令的shell
答案 3 :(得分:0)
“cd”无法使用管道。尝试类似:
chdir("/path");
system("./test.exe");
答案 4 :(得分:0)
我用
system("cd .. && ./test.exe");