powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / C++ [игнор отключен] [закрыт для гостей] / не создается повторно файл средствами _creat
16 сообщений из 16, страница 1 из 1
не создается повторно файл средствами _creat
    #39992613
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
вот тут при первом запуске файл создает, а при последующих ошибка "3. Ошибка: Отказ доступа\n"
такое ощущение , что кто-то держит файл. хотя удалить то я могу FAR-ом.))

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
#include <stdio.h>
#include <fcntl.h>
#include<errno.h>

int main(){
    int f1, f2, n;
    char buf[BUFSIZ];
    int handle;
    if ((handle = _creat("test.FIL", 0)) < 0)
    {
        switch (errno)
        {
        case ENOENT: printf("1. Ошибка:Маршрут или имя файла не найдены.\n");
            break;
        case EMFILE: printf("2. Ошибка:Слишком много открытых файлов.\n");
            break;
        case EACCES: printf("3. Ошибка: Отказ доступа\n");
            break;
        default:     printf("4. Ошибка при создании файла\n");
            break;
        }
    }
    exit(0);

}
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992618
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81,

По документации выходит что файл readonly. И эта функция устаревшая. Не рекомендуемая к использованию.
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992626
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81такое ощущение , что кто-то держит файл.

Никто не держит. Ты его создал с запретом доступа всем, включая себя самого. FAR хитрый,
FAR способен удалить неудаляемое.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992639
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

andron81такое ощущение , что кто-то держит файл.

Никто не держит. Ты его создал с запретом доступа всем, включая себя самого. FAR хитрый,
FAR способен удалить неудаляемое.


с тремя семерками ваще с первого раза отваливается с ошибкой...

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
#include <stdio.h>
#include <fcntl.h>
#include<errno.h>

#define PERM 0777

int main() {
    int f1, f2, n;
    char buf[BUFSIZ];
    int handle;
    if ((handle = _creat("test.FIL", PERM)) < 0)
    {
        switch (errno)
        {
        case ENOENT: printf("1. Ошибка:Маршрут или имя файла не найдены.\n");
            break;
        case EMFILE: printf("2. Ошибка:Слишком много открытых файлов.\n");
            break;
        case EACCES: printf("3. Ошибка: Отказ доступа\n");
            break;
        default:     printf("4. Ошибка при создании файла\n");
            break;
        }
    }
    exit(0);

}
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992640
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81ваще не запускается...

Чем аргументирует?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992642
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov,
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992654
d7i
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А кто будет закрывать файл?
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992659
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
Dimitry Sibiryakov,

Ну он проверил, значение аргумента mode которое ты передал. Откуда ты взял три семёрки.

Возьми из документации: _S_IREAD | _S_IWRITE
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992663
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81, программист С++ под Windows должен использовать Windows-функции для работы с файлами.
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992664
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry Sibiryakov

andron81такое ощущение , что кто-то держит файл.

Никто не держит. Ты его создал с запретом доступа всем, включая себя самого. FAR хитрый,
FAR способен удалить неудаляемое.

FAR обычная программа и не может действовать вне прав пользователя.

Но в общем, ваши слова меня так удивили, что я даже запустил код из первого поста.
И вы знаете, как я и писал в своём первом посте, просто файл создаётся read only. И всё.

С правами там всё как обычно.
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992669
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav,


А это ввшло _S_IREAD | _S_IWRITE?
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992671
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
andron81, программист С++ под Windows должен использовать Windows-функции для работы с файлами.


ну вроде как должно и под Win работать. но вот всякие там восьмиричные коды типа 0777 наверно да. это юниковская тема.
должны быть более упрощенные аналоги . попробую что советует petrav
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992672
petrav
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
petrav,


А это ввшло _S_IREAD | _S_IWRITE?

Вошло? А это я уже не пробовал. Пробуйте. Читайте документацию на функцию .
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992673
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
petrav
andron81
petrav,


А это ввшло _S_IREAD | _S_IWRITE?

Вошло? А это я уже не пробовал. Пробуйте. Читайте документацию на функцию .


вышло, спасибо :

Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
#define _CRT_SECURE_NO_WARNINGS 1


#include <sys/types.h>
#include <sys/stat.h>
#include <io.h>
#include <stdio.h>
#include <stdlib.h>
#include<errno.h>

#define PERM _S_IREAD | _S_IWRITE

int main() {
    int f1, f2, n;
    char buf[BUFSIZ];
    int handle;
    if ((handle = _creat("test.FIL", PERM)) < 0)
    {
        switch (errno)
        {
        case ENOENT: printf("1. Ошибка:Маршрут или имя файла не найдены.\n");
            break;
        case EMFILE: printf("2. Ошибка:Слишком много открытых файлов.\n");
            break;
        case EACCES: printf("3. Ошибка: Отказ доступа\n");
            break;
        default:     printf("4. Ошибка при создании файла\n");
            break;
        }
    }
    exit(0);

}
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992674
Фотография mayton
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
andron81
mayton
andron81, программист С++ под Windows должен использовать Windows-функции для работы с файлами.


ну вроде как должно и под Win работать. но вот всякие там восьмиричные коды типа 0777 наверно да. это юниковская тема.
должны быть более упрощенные аналоги . попробую что советует petrav

Просто Windows и Linux(Unix) очень по разному трактуют атрибуты доступа и если ты пишешь ПО которое
будет работать ТОЛЬКО в Windows то почитай https://docs.microsoft.com/en-us/windows/win32/api/fileapi/
...
Рейтинг: 0 / 0
не создается повторно файл средствами _creat
    #39992678
andron81
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mayton
andron81
пропущено...


ну вроде как должно и под Win работать. но вот всякие там восьмиричные коды типа 0777 наверно да. это юниковская тема.
должны быть более упрощенные аналоги . попробую что советует petrav

Просто Windows и Linux(Unix) очень по разному трактуют атрибуты доступа и если ты пишешь ПО которое
будет работать ТОЛЬКО в Windows то почитай https://docs.microsoft.com/en-us/windows/win32/api/fileapi/


да какое ПО под Windows))) . Нет, я читаю K&R , а тут глава так и называется "интерфейс системы UNIX".
я видимо подсовывал изначально ноль, а это RO, а потом всякие там 0777 или 0666, что для винды абсурд ! в целом я все понял.

можно закрывать. вашу ссылку возьму на заметку.
Модератор: Закрыто
...
Рейтинг: 0 / 0
16 сообщений из 16, страница 1 из 1
Форумы / C++ [игнор отключен] [закрыт для гостей] / не создается повторно файл средствами _creat
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]