Обнаружение перезаписи при использовании распаковки из командной строки в Redhat - PullRequest
0 голосов
/ 13 октября 2011

Возможно, это должно быть на Superuser, но я использую его в коде, поэтому подумал, что я начну здесь.

Моя программа на C ++ разархивирует файл .gz с помощью вызова system ().(Да, я знаю, что это табу, но это было лучшее из плохого, когда я начал этот проект некоторое время назад, и я спросил Разархивировать файл из C ++ на Redhat: альтернативы system () , когда я подумалУ меня был бы шанс улучшить его, но я еще ничего не смог реализовать)

Поскольку существует вероятность того, что файл с таким именем уже существует, при вызове unzip используется "-o""модификатор для перезаписи.

Есть ли способ обнаружить, что произошла перезапись?Я открыт для альтернатив system () и unzip.


ОС: Redhat

Язык: C ++

IDE: Eclipse

1 Ответ

0 голосов
/ 14 октября 2011

Я считаю, что очевидным ответом будет попытка определить, существует ли файл с соответствующим именем на диске, прежде чем вы даже запустите команду system;если файл существует до распаковки, произойдет перезапись.Вы можете легко проверить, существует ли файл, fopen используя его в режиме "r" и проверив возвращаемое значение для правильного дескриптора файла.(Не забудьте fclose файл, если он уже существует.)

...