Меню команд Linux (например, ls, ipconfig и т. Д.), Которое разветвляется и использует execl для запуска команд как дочерний процесс - PullRequest
0 голосов
/ 10 апреля 2019

Мне дали некоторый код, и мне нужно адаптировать его для отображения меню команд Linux, и когда команда выбрана, программа должна выполнить ветвление и использовать execl для запуска команд в качестве дочернего процесса и отображения его PID. Я новичок в C, так что я до сих пор боролся: /

#include <unistd.h>
#include <stdio.h>
#include "sys/types.h"
#include <sys/wait.h>
int main(){

pid_t pid;
    int status = 0;
    int i;
    pid= fork() ;
        if(pid!=0) {
                wait(&status);
                printf ( " I am the parent my PID is %d, myPPID is %d, \n ",getpid(),getppid());
                printf( "Mychild process has finished. \n ");
        }else {
        printf ( " I am the child , my PID is %d , my PPID is %d \n",getpid(),getppid());
        sleep(2);
        execl ( "/bin/ls",".",(char*)0);
        printf( "Can you read this ?\n " ) ;
        }
return 0;
}

1 Ответ

0 голосов
/ 11 апреля 2019

перед вызовом

fork() 

код должен отображать меню, возможно, через некоторые вызовы printf (),

, затем ввести выбор пользователя

и затем использовать этовыделение, возможно, с помощью оператора switch(), чтобы поместить соответствующий текст в

char *args[] variable 

, а затем использовать эту переменную args[] при вызове execl()

...