The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]




Версия для распечатки Пред. тема | След. тема
Новые ответы [ Отслеживать ]
locks, !*! Анатолий, 09-Июн-14, 13:02  [смотреть все]
Всем привет.
Не могли бы вы помочь разобраться с одним вопросом, а именно: что будет если заблочить файл fcntl'ем, а на другом терминале cat'ом попытаться его читать?
  • locks, !*! Andrey Mitrofanov, 13:14 , 09-Июн-14 (1)
    >что будет если

    Хорошая задача!! Предлагаю Научный Метод Тыка.
    Обязательно проверь _все флаги fcntl() и все их сочетания.

    • locks, !*! Анатолий, 14:18 , 09-Июн-14 (2)
      >>что будет если
      > Хорошая задача!! Предлагаю Научный Метод Тыка.
      > Обязательно проверь _все флаги fcntl() и все их сочетания.

      Попробовал различные флаги, попробовал установить sgid бит на права доступа к файлу для mandatory блокировки, все равно читается.

      вот код:

      #include <unistd.h>
      #include <errno.h>
      #include <sys/types.h>
      #include <sys/stat.h>
      #include <fcntl.h>
      #include <string.h>
      #include <stdlib.h>
      #include <stdio.h>

      int main(int argc, char **argv)
      {
          struct flock *lock;
          int fd;
          lock->l_type=F_WRLCK;
          if ((fd = open("path", NULL)) == -1)
              perror("open error");
          fcntl(fd, F_SETLKW, lock);
          return EXIT_SUCCESS;
      }




Партнёры:
PostgresPro
Inferno Solutions
Hosting by Hoster.ru
Хостинг:

Закладки на сайте
Проследить за страницей
Created 1996-2024 by Maxim Chirkov
Добавить, Поддержать, Вебмастеру