函数调用之前打开文件(优化问题)?

时间:2018-07-23 12:01:57

标签: c file optimization access stat

我试图更好地理解这一点... main中有一个仅在满足某些条件时才调用的函数-该函数内部是...

struct stat attr_buff;
if (stat( filename, &attr_buff ) == -1) {

  ... " exit etc " ...
}

如果满足所有条件,则将创建另一个线程来处理文件-并使用以下命令打开文件:

f = fopen ((char *) filename, "rb");

if (f == NULL) {

  ... " exit etc " ...
}

但是!如果我在gcc中打开了优化-O3,即使没有调用main中的函数,也会收到一个段错误,因为它甚至在所有检查完成之前就开始打开文件?我必须承认我有点困惑。我只想说一下,如果我使用access()而不是stat(),那么一切都很好。但是,由于可移植性,我想要stat()...发生了什么事?

0 个答案:

没有答案