読者です 読者をやめる 読者になる 読者になる

素人がプログラミングを勉強していたブログ

プログラミング、セキュリティ、英語、Webなどのブログ since 2008

連絡先: すかいぷ:javascripter_  か javascripter あっと tsukkun.net skypeのほうがいいです

シェル

を参考に作成。ソースがだいぶ古いようで、getsをfgetsに直したりしないとコンパイラが警告を出す。

#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <strings.h>
int main (int argc, char *argv[]) {
    pid_t pid;
    int *cstatus;
    char cmd[256];
    printf("> ");
    while (fgets(cmd, 256, stdin) != NULL ) {
        if(cmd[strlen(cmd)-1] == '\n')
            cmd[strlen(cmd)-1] = '\0';
        if ((pid = fork()) == 0) {
            if (execlp(cmd, cmd, NULL) == -1)
                perror(__FILE__);
        } else {
            wait(cstatus);
            printf("> ");
        }
    }
    return EXIT_SUCCESS;
}