Size: a a a

2021 February 21

KF

Konstantin Franchuk in supapro.cxx
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
источник

АВ

Александр Водянников... in supapro.cxx
А проверки при записи есть ?
источник

АВ

Александр Водянников... in supapro.cxx
Может просто ошибки не обрабатываются
источник

IZ

Ilia Zviagin in supapro.cxx
Konstantin Franchuk
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
Именно так и происходит.
Пока программа файл не закроет, он существует, пусть и хоть только для неё.
источник

IZ

Ilia Zviagin in supapro.cxx
Konstantin Franchuk
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
На Винде кстати все точно так же, кроме одного нюанса: пока файл открыт, его не удалить
источник

IZ

Ilia Zviagin in supapro.cxx
Konstantin Franchuk
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
Ты чего хочешь добиться то?
источник

KF

Konstantin Franchuk in supapro.cxx
Это просто эксперимент, просто было бы логично если бы ядро выдавало ошибку какую нибудь особую, типа "файл был удален но дескриптор еще открыт", а так получается только через stat мы сможем проверить есть ли файл или нет
источник

KF

Konstantin Franchuk in supapro.cxx
Александр Водянников
Может просто ошибки не обрабатываются
В том то и прикол что ошибок нет
источник

AS

Anatoly Shirokov in supapro.cxx
Konstantin Franchuk
В том то и прикол что ошибок нет
Поэтому в unix после rm / система продолжит работу до перезагрузки :)
источник

IZ

Ilia Zviagin in supapro.cxx
Konstantin Franchuk
В том то и прикол что ошибок нет
Не должно быть ошибок, by design.
источник

AF

Aidar Fattakhov in supapro.cxx
Konstantin Franchuk
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
Там хардлинк в /proc
источник

AF

Aidar Fattakhov in supapro.cxx
Ну или почти
источник

FS

Flower Surgeon in supapro.cxx
Aidar Fattakhov
Там хардлинк в /proc
Ты щас насоветуешь ему.
источник

FS

Flower Surgeon in supapro.cxx
Konstantin Franchuk
Ребят подскажите плиз, в линукс пишу в файл в цикле, затем через терминал rm-ом удаляю этот файл, ls и cat этот файл уже не видят, прога продолжает писать в этот файл как ни в чем не бывало, в теории вроде как ядро не удаляет этот файл пока не закрыт его дескриптор, но как на самом деле происходит? Может кто нибудь пояснить?
Не удаляй файл, а делай ему ftruncate()
источник

C

Chuvi in supapro.cxx
Flower Surgeon
Не удаляй файл, а делай ему ftruncate()
смысл вопроса был явно в другом
источник

FS

Flower Surgeon in supapro.cxx
Chuvi
смысл вопроса был явно в другом
хбз, пусть уж сам ответит
источник

KF

Konstantin Franchuk in supapro.cxx
Flower Surgeon
хбз, пусть уж сам ответит
ну да, там смысл в том что именно файл удалять
источник

О

Олег in supapro.cxx
Привет, посмотрите плиз, если кому не сложно: https://www.cyberforum.ru/cpp/thread2786565.html
источник

АВ

Александр Водянников... in supapro.cxx
Код не смотрел, по подскажу пройтись в отладчике, думаю станет все понятно
источник

м

мыши in supapro.cxx
потому что у тебя рекурсия в меню
источник