Как запустить программу в C на х минут? - PullRequest
0 голосов
/ 28 января 2012

Я пытаюсь запустить программу за C в течение x минут.Мне нужно, чтобы процесс child засыпал на это количество времени.Любая помощь будет оценена.В основном я пытаюсь понять, как fork() и sleep() работают.Вот мой фрагмент кода

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>

int main(int argc, char *argv[])
{
    int i = fork();
    printf("fork return value = %d\n", i);
    printf("this is the time before sleep");
    system("date +%a%b%d-%H:%M:%S");
    printf("\n");
    if (i==0){
        sleep(120);
    }
    system("ps");
    printf("this is the time after sleep");
    system("date +%a%b%d-%H:%M:%S");
    printf("\n");
}

1 Ответ

0 голосов
/ 28 января 2012
#include <stdio.h>
#include <stdlib.h>
#include <errno.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>

int main(void)
{
    pid_t pid;
    int rv=1;

    switch(pid = fork()) {
    case -1:
        perror("fork");  /* something went wrong */
        exit(1);         /* parent exits */

    case 0:
        printf(" CHILD: This is the child process!\n");
        printf(" CHILD: My PID is %d\n", getpid());
        printf(" CHILD: My parent's PID is %d\n", getppid());
        printf(" CHILD: I'm going to wait for 30 seconds \n");
        sleep(30);
        printf(" CHILD: I'm outta here!\n");
        exit(rv);

    default:
        printf("PARENT: This is the parent process!\n");
        printf("PARENT: My PID is %d\n", getpid());
        printf("PARENT: My child's PID is %d\n", pid);
        printf("PARENT: I'm now waiting for my child to exit()...\n");
        wait(&rv);
        printf("PARENT: I'm outta here!\n");
    }

    return 0;
}

Скажи спасибо Брайан "Бейдж Йоргенсен" Холл

...