Гость
Форумы / C++ [игнор отключен] [закрыт для гостей] / не создается повторно файл средствами _creat / 16 сообщений из 16, страница 1 из 1
26.08.2020, 16:39
    #39992613
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не создается повторно файл средствами _creat
вот тут при первом запуске файл создает, а при последующих ошибка "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
26.08.2020, 16:46
    #39992618
petrav
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не создается повторно файл средствами _creat
andron81,

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

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

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

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

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

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

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

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

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

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


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


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


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

Вошло? А это я уже не пробовал. Пробуйте. Читайте документацию на функцию .
...
Рейтинг: 0 / 0
26.08.2020, 19:44
    #39992673
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не создается повторно файл средствами _creat
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
26.08.2020, 19:45
    #39992674
mayton
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не создается повторно файл средствами _creat
andron81
mayton
andron81, программист С++ под Windows должен использовать Windows-функции для работы с файлами.


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

Просто Windows и Linux(Unix) очень по разному трактуют атрибуты доступа и если ты пишешь ПО которое
будет работать ТОЛЬКО в Windows то почитай https://docs.microsoft.com/en-us/windows/win32/api/fileapi/
...
Рейтинг: 0 / 0
26.08.2020, 19:52
    #39992678
andron81
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
не создается повторно файл средствами _creat
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
Форумы / C++ [игнор отключен] [закрыт для гостей] / не создается повторно файл средствами _creat / 16 сообщений из 16, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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