我试图更好地理解这一点... 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()...发生了什么事?