Objective c 目标C-NSTask支持

Objective c 目标C-NSTask支持,objective-c,shell,executable,nstask,Objective C,Shell,Executable,Nstask,我正在编写一个高级可执行(二进制)分析器应用程序,它可以对Mach-O二进制文件执行许多操作。其中一个函数是一个简单的启动操作,可以简单地执行可执行文件并记录其输出。 我最近发现,当终端启动可执行文件时,它会检测可执行文件何时在其代码中运行自己的NSTask 例如。 终端正在执行我的应用程序,并且(在红色圆圈中)显示我的应用程序当前正在运行“file”命令的NSTask: 我想弄清楚的是,如何让我的应用程序对其他可执行文件执行此操作。我希望我的应用程序启动一个可执行文件,当该可执行文件运行she

我正在编写一个高级可执行(二进制)分析器应用程序,它可以对Mach-O二进制文件执行许多操作。其中一个函数是一个简单的启动操作,可以简单地执行可执行文件并记录其输出。 我最近发现,当终端启动可执行文件时,它会检测可执行文件何时在其代码中运行自己的NSTask

例如。 终端正在执行我的应用程序,并且(在红色圆圈中)显示我的应用程序当前正在运行“file”命令的NSTask: 我想弄清楚的是,如何让我的应用程序对其他可执行文件执行此操作。我希望我的应用程序启动一个可执行文件,当该可执行文件运行shell脚本(NSTask)时,我的应用程序将检测它并记录它

例如。 可执行文件具有以下代码:

int main(int argc, const char * argv[]) {
    NSTask *task = [NSTask new];
    task.launchPath = @"/usr/bin/file";
    task.arguments = @[@"--mime", @"--brief", @"/path/to/file"];
    task.standardOutput = [NSPipe new];
    [task launch];
    return 0;
}
当我在终端执行此操作时,一旦

[task launch];
执行时,终端将在标题栏中显示子进程名称:

我想让我的应用程序像终端一样执行一个可执行文件,当一个可执行文件运行自己的NSTask时,我想让我的应用程序检测并记录它

所以当我的应用程序运行这个可执行文件时。我想让我的应用程序检测可执行文件中何时执行“文件”任务

我希望这不难理解。我也有一种感觉,我必须比NSTask更深入地挖掘,才能包括这个过程


谢谢。

这与活动监视器的分层过程列表相同吗?也许这有帮助。