/* * The main program to "drive" the pipeline... */ int main (int argc, char *argv[]) { pipe_t my_pipe; long value, result; int status; char line[128]; pipe_create (&my_pipe, 10); printf ("Enter integer values, or \"=\" for next result\n"); while (1) { printf ("Data> "); if (fgets (line, sizeof (line), stdin) == NULL) exit (0); if (strlen (line) <= 1) continue; if (strlen (line) <= 2 && line[0] == '=') { if (pipe_result (&my_pipe, &result)) printf ("Result is %ld\n", result); else printf ("Pipe is empty\n"); } else { if (sscanf (line, "%ld", &value) < 1) fprintf (stderr, "Enter an integer value\n"); else pipe_start (&my_pipe, value); } } }
int main(int argc, char *argv[]) { pipe_t pipe; int value, result; char line[128]; pipe_create(&pipe, 2); printf("Enter inter value, or '=' for next result\n"); while (1) { printf("Data> "); E_TEST(NULL, fgets(line, sizeof(line), stdin)); if (strlen(line) <= 1) continue; if (strlen(line) <= 2 && line[0] == '=') { if (pipe_result(&pipe, &result)) printf("Result is %d\n", result); else printf("Pipe is empty\n"); } else { if (sscanf(line, "%d", &value) < 1) fprintf(stderr, "Enter an integer value\n"); else pipe_start(&pipe, value); } } return 0 ; }
int main() { pipe_t mypipe; long value, result; int status, len; char line[128]; stage_t *stage, *stage_next; pipe_create(&mypipe, 10); printf("Enter integer value, or \"=\" for result, enter quit to leave\n"); while(1) { printf("Data > "); if (fgets(line, sizeof line, stdin) == NULL || my_strcmp("quit", line)) break; len = strlen(line); if (len <= 1) continue; if (len <= 2 && line[0] == '=') { if (pipe_result(&mypipe, &result)) printf("result is %ld\n", result); else printf("pipe is empty\n"); } else { status = sscanf(line, "%ld", &value); if (status < 1) printf("please enter integer\n"); else pipe_start(&mypipe, value); } } for (stage = mypipe.head; stage != NULL;) { stage_next = stage->next; free(stage); printf("free stage\n"); stage = stage_next; } printf("end of pipe\n"); }