Вопрос № 34741: Здравствуйте.
мне дали задание по СИ++ (Билдер, консольный проект), а под рукой нет нормальной литературы.
вообщем столкнулся со следующими проблемами:
1) при создании файла функцией open(file_name, O_CREAT|O_RDWR|O_BINARY);
файл созд...
Вопрос № 34.741
Здравствуйте.
мне дали задание по СИ++ (Билдер, консольный проект), а под рукой нет нормальной литературы.
вообщем столкнулся со следующими проблемами:
1) при создании файла функцией open(file_name, O_CREAT|O_RDWR|O_BINARY);
файл создается с атрибутом "для чтения", из-за этого я не могу в него записывать (функция open возвращает ошибку EACCES). почему винда (у меня ХР) при создании файла ставит эту галочку, и как это программно обойти (или чтоб она его не ствила, или чтоб программа могла его снять)?
2) как на чистом С(С++) удаляются, переименовываются и очищаются (чтоб содержимое удалялось, но без пересоздания файла) файлы?
зарание спасибо
Отправлен: 04.02.2006, 20:08
Вопрос задал: PROD (статус: 3-ий класс)
Всего ответов: 1 Мини-форум вопроса >>> (сообщений: 0)
Отвечает: Evgeniy
Здравствуйте, PROD!
1)Ошибка EACCES говорит об отказе доступа, поробуйте создавать файл как..
open(file_name, O_CREAT|O_RDWR|O_BINARY|S_IWRITE|S_IREAD);
2)удалить файл можно:
int remove(chat* name_file);
int unlink(const char* name_file);
Очистить файл можно открыв существующий файл для записи с битом "w"
fopen(file,"w"); //содержимое должно затереться
Ответ отправил: Evgeniy (статус: 1-ый класс)
Отправлен: 05.02.2006, 06:10 Оценка за ответ: 4 Комментарий оценки: Спасибо, попробую.