而不是直接从命令行调用strace,
我想编写一个程序,为我运行strace给一个给定的程序。 我试图解决这个问题好几个小时,但我不知道如何让它发挥作用。
我之前写过一个使用下面使用的相同代码的程序。 以前的程序只是复制shell的操作,它将用户输入记录到日志文件中。链接:https://pastebin.com/Wf9TTZSM
我所做的只是取出相关代码,并将用户输入更改为运行" strace"。但它没有用。
我怎样才能使这个工作?
我在
下面遇到 Seg错误(核心转储)错误#include <stdio.h>
#include <unistd.h>
#include <string.h>
#include <stdlib.h>
int main ()
{
char *s = "strace ls";
char* separator = " ";
char* argv[64];
int argc = 0;
char* tmp;
printf("%s", s);
argv[argc] = strtok_r(s, separator, &tmp);
while( argv[argc] != NULL){
argc+=1;
argv[argc] = strtok_r(NULL, separator, &tmp);
}
execvp(argv[0],argv);
return 0;
}