2011-06-23 4 views
1

ドキュメントがなく、管理されていないコードを持つプロジェクトに割り当てられました。 出力ファイルを指し示す、プロジェクト全体に明示的に宣言されたパスがあります(実際には、環境変数が異なる場所に異なる値に設定されています)。出力をワークスペース内のディレクトリにリダイレクトするようにこれらを変更しましたが、ファイルは作成されず、ワークスペース内で見つけることもできません。私は彼らがファイルシステムのどこかに作られていると信じています。前にも触れましたが、スクリプトを使用することで環境変数が割り当てられる場所は数多くあります。私は関連するスクリプトを入手したと思ったが、明らかに何かが欠けている。実行可能ファイルからすべての出力ファイルを追跡する方法:

特定の実行可能ファイルからすべてのファイル出力を追跡するユーティリティがあります(すべてのファイル名を読み書きします)。

私はFedoraの下で働いていて、プロジェクトは主にFortranで書かれています。

答えて

5

straceはすべてのsyscallの詳細を表示します。単にopen()の呼び出しの出力をフィルタリングできます。

+0

素晴らしい。私はその解決策を考えていたはずです。私は今それを試し、あなたのコメントに応じて私の投票を更新します。 –

+1

私はこのソリューションが私の望む答えをもたらしたとは言えません(私に誤解しないでください、それは私が必要とするものでした)。私は働いています。あなたの助けてくれてありがとう、tstenner。 –

2

1つのオプションはlsofです。

lsof -p <PID> 
+1

これは、a) 'strace'が何らかの理由で出力を大きく生成し、b)プロセスがファイルを開いているときに知っているときに適しています。 – wallyk

+0

他にも方法があることを知っていて嬉しいです。 straceからの出力をgrep-edしましたが、最初は最小限の出力が常に良好です。 –

関連する問題