#include #include #include int main(int argc, char **argv) { char *line = "ls -1 | wc -l | less"; size_t sz = strlen(line) + 1; char *linecopy = malloc(sizeof(char) * sz); strcpy(linecopy, line); linecopy[sz-1] = '\0'; char *args[10]; char **lineptr = &linecopy; char *tok = NULL; const char arg_delim = ' '; int i = 0; do { tok = strsep(lineptr, &arg_delim); args[i] = tok; i++; } while ((tok != NULL) && (i < 9)); if (i == 10) args[9] = NULL; /* print out the piped string */ int j; for (j = 0; j < i; j++) printf("string argument %d: \"%s\"\n", j, args[j]); return 0; }