2011-03-15 2 views
0

mkdirコマンドを実行する必要があります(PHPのexecコマンドなど)。標準エラーにアクセスするにはどうすればいいですか(例:EACCEShttp://pubs.opengroup.org/onlinepubs/009695399/functions/mkdir.html参照)。提案?ありがとう。PHP: "mkdir"を実行してerrnoを取得

UPDATE:

私は私のコマンドに2>&1を追加しました:

$command = "sudo mkdir /home/test 2>&1"; 
$output = array(); 
$return = 0; 
exec($command, $output, $return); 

をそれがなければ、私は0(成功)または-1(エラー)のいずれかを取得するために使用。私のテストでは1が得られました。作成しようとしているディレクトリが既に存在しているからです。 1EEXISTにマップされているようです。残りのerrnoはどのようにマップするのですか?

答えて

0

あなたはおそらく、あなたがそれらの上に通常のファイルの読み書き機能を使用することができることを意味し、あなたのPHPストリームとしてstdinstdoutstderrを直接操作する能力を与える、proc_openを探しています。

proc_ファミリーツリーの詳細については、proc_closeproc_get_statusページを必ずお読みください。

終了コードを使用する代わりに、stderrに記載されているように、エラーのテキストを扱う運がもっとあるかもしれません。

2

できません。

あなたがerrno経由mkdir機能のエラーをキャッチしたいのですが、PHPの幹部()へのお電話は、あなたの代わりに終了コード外部プログラムmkdirに対処することを意味します。

http://pubs.opengroup.org/onlinepubs/009695399/functions/mkdir.html(あなたが引用する)

http://pubs.opengroup.org/onlinepubs/009695399/utilities/mkdir.html(あなたのexec)

それは違いがあります

関連する問題