【发布时间】:2015-03-20 16:23:56
【问题描述】:
我正在尝试学习编写 NSTask 以使 task 进程可以接受 输入文件重定向 作为参数。在传统的 unix system() 命令中,这对于代码来说是微不足道的,但对于我的应用程序的需求来说,还远远不够可控。我试图理解的例子是 which 参数属于 where。这是完整的命令,可以输入到 stdin 或传递给 system():
cd /Users/Shared ; /usr/local/bin/C_command < /Users/Shared/s.txt
其中 C_command 代表标准 unix 命令行工具,它接受重定向以从文件中读取的输入参数,与所写的完全相同.启动路径将是:
task.launchPath = @"/usr/local/bin/C_command";
当前目录必须是:
task.currentDirectoryPath = @"/Users/Shared";
如果将以下内容作为参数:
NSArray *args = [NSArray arrayWithObjects:[NSString stringWithFormat: @" < /Users/shared/s.txt"], nil];
甚至这个:
NSArray *args = [NSArray arrayWithObjects:[NSString stringWithFormat: @" < "], [NSString stringWithFormat: @"/Users/shared/s.txt"], nil];
我显然做错了什么,错过了一些明显重要的东西,但不知道是什么。非常欢迎提示。谢谢!
【问题讨论】: