1. ホーム
  2. c

[解決済み] LinuxでC言語からカレントファイルのパス(pwd)を取得するには?

2022-02-15 05:24:27

質問内容

をどうにかして実行できないものでしょうか? system("pwd") を現在のDIRで表示します。例えばこんなフォルダ構造だとします。

example
 >test
  >>file
 >test2
  >>file3
  >>file4

そして opendir()readdir() に辿り着く。 file3 を使用したい。 system("pwd") のパスを取得するために ..../example/test2/file3 . これはどうにかして可能なのでしょうか、それとも pwd へのパスを返します。 main.c を常に使用するのですか?

どのように解決するのですか?

単にディレクトリを開いたり読み込んだりするだけでは、現在の作業ディレクトリは変わりません。しかし、プログラム内でディレクトリを変更すると変更されます。

参考までに

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

int main() {
    char cwd[1024];
    chdir("/path/to/change/directory/to");
    getcwd(cwd, sizeof(cwd));
    printf("Current working dir: %s\n", cwd);
}