名前付きパイプを使用して、別のプログラム (MATLAB) 内の外部プログラム (wgrib2) の出力をキャプチャしています。MATLAB コードは以下のとおりでsystem()
、コマンド ラインにアクセスしてパイプを作成します。
system('mkfifo myfifo'); % Make a named pipe myfifo
% Call the external program wgrib2 and dump its output to the named pipe myfifo
system('wgrib2.exe multi_1.glo_30m.hs.201212.grb2 -ij 1 165 -ij 1 166 > myfifo &');
fid = fopen('myfifo', 'r'); % Open the named pipe
a = fscanf(fid, '%c'); % Read the output as character
fclose(fid); % Close the "file" (myfifo still exists afterward)
ここに私の質問があります:
myfifo
使用後に名前付きパイプを閉じる必要はありますか? コードの実行後も持続するようです。myfifo
閉じる必要がある場合、閉じるコマンドは何ですか?- 上記のコードサンプルを何度も(>1000)実行するので、名前付きパイプを再利用して最後まで閉じなくても大丈夫ですか?