# /* set -ex gcc -o cvs-wrap cvs-wrap.c -O2 -Wall -ggdb3 exit # */ #include #include #define LENGTH(x) (sizeof((x))/sizeof(*(x))) int main(int argc,char **argv) { const char *strace[]={"cvs","-s","200","-q","-o","/tmp/strace.log","/usr/bin/cvs-orig"}; char **arg; arg=malloc(sizeof(*arg)*(LENGTH(strace)+(argc-1)+1)); memcpy(arg ,strace,sizeof(*arg)*LENGTH(strace)); memcpy(arg+LENGTH(strace),argv+1,sizeof(*arg)*(argc-1)); arg[LENGTH(strace)+(argc-1)]=NULL; execv("/usr/bin/strace",arg); return(EXIT_FAILURE); }