バイナリを実行できるプログラムを作成しようとしています。要求されたときに特定のファイルを別のファイルに置き換えます。これは、LD_PRELOADで使用される、システムコール関数の単純な置換を備えたライブラリです。問題は、読み取り用にオープンをキャッチすることです(代わりに代替ファイルが読み取られます)が、書き込みは常に実際の指定されたファイルに戻ります。他に知っておくべき「オープンな」システムコールはありますか?
1547 次
4 に答える
4
気にしないでください-愚かな間違い。
絶対パスと相対パスの両方をチェックしていませんでした...
于 2009-05-29T01:08:36.747 に答える
2
問題の原因はわかりませんが、プログラムでstraceを使用すると、ある程度の洞察が得られる可能性があります。これは、正常なLinuxディストリビューションの一部である必要があります。
于 2009-05-29T00:34:22.107 に答える
2
それが書き込みのために開いている場合、それはおそらくcreat
関数を通過しています(私はfopen
あなたをそこにリダイレクトすると思います)。fcntl.h
完全なリストを確認してください。
于 2009-05-29T00:38:51.193 に答える