Не-а. Там так
Похоже, это связано с тем, что stream wrapper api несколько неконсистентен - нет способа проверить, поддерживается ли truncate одновременно с lock.
PHP:
if (flags.append) {
mode[0] = a
} else if (flags.lock_ex) {
if (stream_wrapper_in_file_name)
error("Cannot lock and truncate streams")
mode[0] = c
}
...
if (flags.lock_ex) {
obtain_lock();
...
}
...