/* * flip -- put last argument after first argument * $ cc -O2 -o flip flip.c */ #include #include #include #include #include int main(int argc, char *argv[]) { int i; if(argc-1 == 0){ fprintf(stderr, "usage: %s command [arg ...]\n", argv[0]); return 1; } /* Move last argument after first argument. */ if(argc-1 > 2){ for(i = argc; i >= 3; i--) argv[i] = argv[i-1]; argv[2] = strdup(argv[argc]); argv[argc] = NULL; } execvp(argv[1], argv+1); err(1, "%s", argv[1]); }