7

ここで Python で見られる例のように、テキスト ファイルへのログ記録をオンまたはオフにする簡単な方法を見つけようとしています。彼らの解決策は、ロギングが必要な場合は有効なファイル名を使用し、それ以外の場合はnull デバイス 'dev/null'を使用することでした。彼らはリダイレクトを使用していますが、私はfopen.

次のようなことを行う方法はありますか。それが重要な場合、UnixまたはWindowsシステムでどの単語が機能しますか

nullFID = fopen('/dev/nul', 'w')

私が変更しているスクリプトは、いくつかのファイルの細かいレベルの詳細を取得したいが、スクリプトが通常対象とするバッチ処理には大きくなりすぎるという、特定の重大なシナリオで詳細なログを作成することで大きなメリットが得られます。

4

2 に答える 2

4

これができるように見えます.誰かが「ヌルファイル」という同様の用語を使用してMathWorksに回答を投稿しました. それが有効な用語かどうかはわかりませんが、「null device file」の短縮形である可能性があります。

ヌルデバイスの参照方法はOS依存...

nullFID = fopen( 'NUL:'    ); % Windows
nullFID = fopen('/dev/null'); % UNIX

また、リファレンスは Matlab のリリースによって異なるようです。次のスクリプトを検討してください

ver
nullFID = fopen( 'NUL:' , 'w' )
fprintf( nullFID , '12345' )
nullFID = fopen( 'NUL:'  )
fprintf( nullFID , '12345' )
nullFID = fopen('NUL' , 'w' )
nullFID = fopen('NUL' )

そして、Matlab の 2 つのバージョンから生成された次の出力...

R2011b

>> ver
-------------------------------------------------------------------------------------
MATLAB Version 7.13.0.564 (R2011b)
MATLAB License Number: xxxx
Operating System: Microsoft Windows 7 Version 6.1 (Build 7601: Service Pack 1)
Java VM Version: Java 1.6.0_17-b04 with Sun Microsystems Inc. Java HotSpot(TM) 64-Bit Server VM mixed mode
-------------------------------------------------------------------------------------
MATLAB                                                Version 7.13       (R2011b)

>> nullFID = fopen( 'NUL:' , 'w' )
nullFID = 119

>> fprintf( nullFID , '12345' )
ans = 5

>> nullFID = fopen( 'NUL:' )
nullFID = 120

>> fprintf( nullFID , '12345' )
ans = 0

>> nullFID = fopen('NUL' , 'w' )
Warning: You have chosen a reserved DOS device name for your filename.
Please choose another valid filename
nullFID = -1

>> nullFID = fopen('NUL')
nullFID = -1

R2015a

>> ver
----------------------------------------------------------------------------------------------------
MATLAB Version: 8.5.0.197613 (R2015a)
MATLAB License Number: 1093113
Operating System: Microsoft Windows 7 Professional  Version 6.1 (Build 7601: Service Pack 1)
Java Version: Java 1.7.0_60-b19 with Oracle Corporation Java HotSpot(TM) 64-Bit Server VM mixed mode
----------------------------------------------------------------------------------------------------
MATLAB                                                Version 8.5        (R2015a)

>> nullFID = fopen( 'NUL:' , 'w' )
nullFID = -1

>> fprintf( nullFID , '12345' )
Error using fprintf
Invalid file identifier. Use fopen to generate a valid file identifier.

>> nullFID = fopen( 'NUL:' )
nullFID = 8

>> fprintf( nullFID , '12345' )
ans = 0

>> nullFID = fopen('NUL' , 'w' )
Warning: You have chosen a reserved DOS device name for your filename.
Please choose another valid filename. 
nullFID = -1

>> nullFID = fopen('NUL' )
nullFID = -1
于 2016-02-04T22:09:35.950 に答える