"の"パスlinuxでは、controlelrディレクトリにて
-
09-06-2019 - |
質問
皆様にお伝えしたくて書き込み、cプログラムインプリメンテーションです。コマンドのようにexecv()に要する経路、c文字列です。あるコマンドを返し現在のパス、cスタイルの文字列?
解決
概要
#include <unistd.h> char *getcwd(char *buf, size_t size);
説明
の getcwd() 機能は、場所の絶対パス名は、現在の作業ディレクトリの配列によって指定された buf、buf.パス名にコピーされる配列は含まない部品とシンボリックリンク.の サイズ 引数のサイズをバイトの文字配列によって指定されたの buf 引数です。の場合 buf nullポインタの行動のgetcwd()は指定されていません。
戻り値
無事に修了した getcwd() 行を返します buf 引数です。その他、 getcwd() 行を返し、nullポインタ設定 errno を示すこと、エラーとなります。配列の内容によって指定された buf して定義されていません。...
他のヒント
の パス 引数execv()には、パスへの応用をご希望の実行ではなく、現在の作業ディレクトリを返すことができるようgetcwd())はシェルの検索パスを返すことができるようgetenv("PATH")).
によって何をやっているはありませんが、できればよりマイルのシステム()関数はCライブラリよりも低いレベルのexec()です。
この ない ANSI C:
#include <unistd.h>
char path[MAXPATHLEN];
getcwd(path, MAXPATHLEN);
printf("pwd -> %s\n", path);
場合、パスは相対パス対応することができるでしょうを使用'.'または'./' しています。くなった場合での作業ができアクセスすることとする。
私はリファレンスマニュアルを作ることではない正確な答えです。
必要なものだけでは環境変数PWD(現在の作業ディレクトリ)
お使いいただくことによって、図書館にあるものが標準となっていますがlinuxのヘッダを表します。
私見を見出すことができればそれを見いだすのです。
編集:
と思っていたが、getenv() 私の場合も必要になシステムコマンドの実行を必要と各種binにパスを置くパス