如果我想使用这样的命令使用一个exe文件:
1.exe < input.txt > output.txt
要将文件名输入用于修改输入文件和输出文件的C程序,它会起作用吗?
我试过1.exe input.txt output.txt
它有效。
但是,当我将其更改为1.exe < input.txt > output.txt
时,无法打开文件。
甚至,我将指针argv[1]
增加到argv[2]
,将argv[2]
增加到argv[4]
。
那么,我应该怎样处理1.exe < input.txt > output.txt
命令?
答案 0 :(得分:6)
执行此操作时:1.exe input.txt output.txt
,它将input.txt作为第一个参数传递给1.exe,将output.txt传递给第二个参数。
这与1.exe < input.txt > output.txt
不同,后者将input.txt的内容放在stdin上,并将stdout写入output.txt。
程序1.exe期望获得它随后打开和操作的文件的名称。它不期望从stdin读取并写入stdout。如果这就是你想要做的,你需要修改程序才能做到这一点。