xv6-k210/xv6-user/strace.c

29 lines
591 B
C

#include "kernel/include/param.h"
#include "kernel/include/types.h"
#include "kernel/include/stat.h"
#include "xv6-user/user.h"
int
main(int argc, char *argv[])
{
int i;
char *nargv[MAXARG];
if(argc < 3 /*|| (argv[1][0] < '0' || argv[1][0] > '9')*/){
fprintf(2, "usage: %s MASK COMMAND\n", argv[0]);
exit(1);
}
if (trace(atoi(argv[1])) < 0) {
fprintf(2, "%s: strace failed\n", argv[0]);
exit(1);
}
for(i = 2; i < argc && i < MAXARG; i++){
nargv[i-2] = argv[i];
}
exec(nargv[0], nargv);
printf("strace: exec %s fail\n", nargv[0]);
exit(0);
}