0

こんにちはexecvp()、変数と組み合わせて使用​​して**environ、ユーザーが入力したコマンドの正しいパスを見つけようとしています。

問題は、これを行う方法がよくわからないことです。コマンドファイルを開いて存在するかどうかを確認することはできますが、検索する必要があるパスを取得する方法がわかりません**environ.

4

2 に答える 2

0
#include <stdlib.h>
#include <stdio.h>
#include <string.h>

int main(void) {
    char *start, *end;
    char ch;
    char* path = getenv("PATH");

    if (!path) {
        fprintf(stderr, "could not get $PATH, exiting\n");
        exit(EXIT_FAILURE);
    }

    start = path;
    do {
        end = strchr(start, ':');
        if (!end) {
            printf("%s\n", start);
        } else {
            ch = *end;
            *end = '\0';
            printf("%s\n", start);
            *end = ch;
        }
        start = end + 1;
    } while (end != NULL);

    return 0;
}

この小さなプログラムは、env[PATH] から別のパスを取得する方法を示しています。

于 2013-03-05T05:57:50.433 に答える