コード例 #1
0
ファイル: pipe.c プロジェクト: chackotemp/codetestmap
/*
 * 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);
        }
    }
}
コード例 #2
0
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 ;
}
コード例 #3
0
ファイル: pipe.c プロジェクト: Ace-Tang/APUE
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");
}