Положим есть база данных в данный момент в таблицах изменяются значения
т.есть происходит запись и это нормально что в этот момент можно просто
взять и прибить файл куда пишется? а программа случайно не сойдет с ума?
она же не сможет продолжить запись и наверняка завершится с ошибкой..
>Положим есть база данных в данный момент в таблицах изменяются значения т.есть происходит запись и это нормально что в этот момент можно просто взять и прибить файл куда пишется?
А чем это лучше того, что ты убьёшь файл после окончания записи? Файл всё равно же исчезнет :)
>а программа случайно не сойдет с ума?
Не сойдёт. Linux удаляет файлы только после того, как освободится последний дескриптор. Даже если программа читает файл, а не пишет. Файл будет удалён только после того, как им перестанут пользоваться.
...
Это, кстати, и позволяет, например, спокойно обновлять системные библиотеки прямо в работающей системе. Софт, который эти .so открыл и держит будет работать со старым вариантом, пусть он уже даже стёрт и перезаписан. Вновь запускаемая программа будет работать уже с новой версией. Старая версия будет жива (хотя и невидима для пользователя), пока есть хоть один процесс, использующий её.
>Вот тут уже спасибо понял зачем так оно нужно и как вобще это работает.
Кстати, на будущее. Когда убиваешь файл в 4Гб размером, раздающийся по торренту или ed2k, место не освобождается, пока не закончится раздача :D Ну, или пока клиента не перезапустишь.