0

好吧,我想我在解决两个同名函数时遇到了问题,我不知道如何解决。

我有一个 Qt 类,它是 QDialog (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() 成功了。第二个答案(使用 stat 代替 fstat)同样有效。谢谢!

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 回答