10

次の設定でvalgrindを実行しています: valgrind --tool=memcheck --tool=callgrind --num-callers=20 --track-fds=yes --error-exitcode=1 CMD。特に、--track-fds=yes希望どおりに動作しますが、開いているはずのfds 0,1,2が原因で、すべての実行が失敗します。--track-fdsただし、確かに意味のある情報が得られるので、削除したくありません。それで、0,1,2を除くfdsを追跡するためのvalgrindオプション/メソッドはありますか?

==5872== FILE DESCRIPTORS: 3 open at exit.
==5872== Open file descriptor 2:
==5872==    <inherited from parent>
==5872== 
==5872== Open file descriptor 1:
==5872==    <inherited from parent>
==5872== 
==5872== Open file descriptor 0: /dev/pts/0
==5872==    <inherited from parent>
==5872== 
==5872== 
==5872== Events    : Ir
==5872== Collected : 3081079256
==5872== 
==5872== I   refs:      3,081,079,256
4

1 に答える 1

13

それらは、、stdinです。通常、これらは無視できますが、本当に気を配りたい場合は、次のようにします。stdoutstderr

fclose(stdin);
fclose(stdout);
fclose(stderr);

于 2013-02-11T23:37:49.747 に答える