| Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате |
| Форум программистов > C/C++: Программирование под Unix/Linux > Использование файла созданного предыдущей функцией |
| Автор: Rutti 31.10.2006, 16:07 |
| В пределах отдной main() одна функция создаёт файл с какими-то данными, а следующая за ней функция должна использовать данные, находящиеся в файле созданном предыдущей функцией. Но файл создаётся только после выхода из main(). Т.е. вторая функция остаётся без работы. |
| Автор: Бонифаций 31.10.2006, 16:24 |
| а "предыдущая" функция закрывает файл? |
| Автор: JackYF 31.10.2006, 16:40 |
| По-моему, после выхода из main() заканчивается вся программа, и файл создаться никак не может. Если же серьезно, то, во-первых, данная тема уже поднималась..., а во вторых - объяви файл до main() или передавай его второй функции в качестве параметра. |
| Автор: Бонифаций 31.10.2006, 18:02 |
вы дважды открываете файл тут |
| Автор: apook 31.10.2006, 18:19 |
| Да да надо передавать в 2-ю функцию уже открытый файл а при выходе из 2-й функции его не закрывать а стереть error-ы(скорее всего это надо) можно еще указатель в начало файла поставить. |
| Автор: MAKCim 31.10.2006, 18:40 | ||
Почему? Системный вызов write на дескриптере файла, который открыт не с флагом O_SYNC возвращает управление при передаче данных в буфер драйвера блочного устройства. То есть не известно, когда этот драйвер сформирует request в очереди запросов и когда начнется действительная запись на диск |