0

同じ名前の2つの関数の解決に問題があると思いますが、解決方法がわかりません。

QDialog(Qt)のサブクラスであるQtクラスがあります。'fstat'を使用して、以下のようなコードを使用してファイルに関する情報を取得したいと思います

struct stat file_info;
int hd = open("/home/test/file.xml", O_RDONLY);
fstat(hd, &file_info);
close(hd);

しかし、これを行うと、コンパイラからこの不満が出ます。

error: no matching function for call to 'Test::open(const char [19], int)'
/usr/local/Trolltech/Qt-4.7.3/include/QtGui/qdialog.h::99:10: note: candidate is: void QDialog::open()

これを解決する方法はありますか?

ありがとう。

答え:

Caladanが言及しているように、:: open()がそのトリックを行いました。また、2番目の回答(fstatの代わりにstatを使用する)も同様に有効でした。ありがとう!

4

2 に答える 2

3

::open() を呼び出してみてください。これは、コンパイラが現在のスコープを見てはいけないことを示唆しています。

記述子の代わりにファイル名を取得する stat() を使用することもできます。

于 2012-10-10T08:11:35.520 に答える
0

これらのヘッダー ファイルは含まれていますか?

#include <sys/types.h> 
#include <sys/stat.h> 
#include <fcntl.h> 
于 2012-10-10T08:25:47.250 に答える