コード例 #1
0
ファイル: main.c プロジェクト: wheelin/CSEL
int main (int argc, char** argv)
{
	int err;

    err = pipe(fd);
    if(err == -1)
	{
		return -1;
	}
	printf("%s\n", "In the main process.\n");
    pid_t pid = fork();
    if(pid == 0)
    {
    	/* children's code*/
    	printf("%s\n", "In the children process.\n");
	children_code(fd[1]);
    }
    else if(pid > 0)
    {
    	/* parent's code */
    	printf("%s\n", "In the parent process\n");
	parent_code(fd[0]);
    }
    else
    {
    	/* error */
    	return -1;
    }
    printf("\n");
    return 0;
}
コード例 #2
0
ファイル: sol08.8b.c プロジェクト: benbee/Learning
main(int ac, char *av[])
{
	void 	child_code(int), parent_code(int);
	pid_t	pid;
	int	i,n;
	int	delay;

	/* 
	 * setup
	 */
	if ( ac == 1 ){
		fprintf(stderr,"usage: sol08.8b numberofchildren\n");
		exit(1);
	}
	n = atoi(av[1]);
	srand(getpid());

	printf("before: mypid is %d\n", getpid());

	/*
 	 * main loop
	 */
	for(i=0; i<n ; i++){
		delay = 1 + (rand() % MAXDELAY);
		pid = fork();
		if ( pid == -1 )
			oops("fork", 2);
		if ( pid == 0 )
			child_code(delay);
	}
	parent_code(n);
	return 0;
}
コード例 #3
0
ファイル: mysh2.c プロジェクト: Dunky13/Intprog
/* Execute the given command in the array. Supports arguments */
void execute(char *input){
	pid_t pid;
	char command[BUF_SIZE];

	trim(input, command);

	if(strcmp("exit", command) == 0){
		printf("exiting...\n");
		exit(0);
	}
	else if(strcmp("", command) != 0){
		pid = fork();

		if(pid < 0){
			perror("fork");
			exit(-1);
		}
		else if(pid == 0){	/*child*/
			child_code(command);
		}
		else{				/* parent */
			parent_code();			
		}
	}
}
コード例 #4
0
ファイル: 2processmsg.c プロジェクト: unsign3d/c-universita
int main(int argc, char const *argv[])
{
	/* basically the same key used 
	 for the semaphore programs */
	key_t key;
	pid_t childPid;
	int msqid;

	/* create a token */
	if((key = ftok("/tmp", SECRET_KEY)) == -1) {
		printf("[-] Error on ftok\n");
		return 1;
	}

	/* create a set of msg */
	if((msqid = msgget(key, 0666|IPC_CREAT|IPC_EXCL)) == -1) {
		printf("[-] Error on msgid\n");
		return 1;
	}

	/* now use the fork */
	switch (childPid = fork()){
		case -1: //fork fallita
			return 1;
			break;
		case 0: // eseguo il codice del figlio
			child_code(msqid);
			break;
		default: // eseguo il codice del padre
			parent_code(msqid);
			break;
	}

	return 0;
}
コード例 #5
0
int main(void) {
    int newpid;
    printf("Before: my pid is %d\n", getpid());

    if ((newpid = fork()) == -1)
        perror("fork");
    else if (newpid == 0)
        child_code(DELAY);
    else
        parent_code(newpid);

    return EXIT_SUCCESS;
}
コード例 #6
0
ファイル: waitdemo.c プロジェクト: victorisildur/UNIX
int main()
{
    int newpid;
    void child_code(), parent_code();
    
    printf("before: my pid is %d \n", getpid());
    if ((newpid = fork()) == -1)
        perror("fork");
    else if (newpid == 0)
        child_code(DELAY);
    else
        parent_code(newpid);
}
コード例 #7
0
int main(void)
{
  int newpid;
  void child_code(), parent_code();

  printf("before: my pid is %d\n", getpid());

  if ((newpid = fork()) == -1) {
    perror("fork");
  } else if (newpid == 0) {
    child_code(DELAY);
  } else {
    parent_code(newpid);
  }

  return 0;
}
コード例 #8
0
ファイル: ex1_mutliprocess.c プロジェクト: wheelin/CSEL
int main (int argc, char** argv)
{
	int i, err;
    for(i = 1; i <= 30; i++)
    {
    	if(i != SIGKILL && i != SIGSTOP)
    	{
    		err = sigaction(i, &act, NULL);
    		if(err == -1)
    		{
    			printf("Cannot handle signal : %d\n", i);
    			return -1;
    		}
    	}
    }

    err = pipe(fd);
    if(err == -1)
	{
		return -1;
	}
	printf("%s\n", "In the main process.\n");
    pid_t pid = fork();
    if(pid == 0)
    {
    	/* children's code*/
    	printf("%s\n", "In the children process.\n");
    	close(fd[0]);
    	children_code(fd[1]);

    }
    else if(pid > 0)
    {
    	/* parent's code */
    	printf("%s\n", "In the parent process\n");
    	close(fd[1]);
    	parent_code(fd[0]);
    }
    else
    {
    	/* error */
    	return -1;
    }
    printf("\n");
    return 0;
}
コード例 #9
0
ファイル: waitdemo1_l.c プロジェクト: Og192/CPro
int main(int argc, char **argv)
{
	int newpid;
	int i;
	void child_code(int);
	void parent_code(int);

	if(argc != 2){
		printf("Usage: waitdemo_l number_of_fork\n");
		exit(0);
	}

	for(i = 0; i < atoi(argv[1]); i++){
		if((newpid = fork()) == -1){
			perror("fork");
			exit(0);
		}else if(newpid == 0)
			child_code(DELAY);
		else 
			parent_code(newpid);
	}

	return 0;
}