1. PHP / Говнокод #5336

    +173

    1. 1
    2. 2
    3. 3
    4. 4
    5. 5
    6. 6
    $file='spiski.txt';
    $handle = fopen($file, "r");
    while ( $handle == FALSE )
    {
    $handle = fopen($file, "r");
    }

    Метод назойливого открывания файла.

    Запостил: basename, 19 Января 2011

    Комментарии (27) RSS

    • http://ithappens.ru/story/4265
      Ответить
    • сим-сим откройся!
      Ответить
    • Боян, однако.
      Ответить
    • вот для таких в выхе и сделали time limit
      Ответить
    • Спин-лок на файлах.
      Ответить
      • который будет пытать CPU и HDD, пока файл наконец не объявица
        Ответить
        • HDD не будет, только кеш ФС.
          Ответить
          • депендс он какого типа фс
            Ответить
            • Ну если под дос с отключенным смартдрайвом...

              Не представляю современную ОС без буферизации чтения.
              Ответить
              • я подумал, и понял что Вы правы

                действительно, кеш работает не в ФС а в операционке.
                Оси кешируют блоки что бы делать отложенную запись и прочие радости.
                например он встроен в VFS в Linux, и в NT он тоже есть (юзеру им даже можно управлять через CacheSet например)
                Ответить
                • даже вернее так: в NT это делает Cache Manager -- часть executive (ядра)

                  во как! теперь совсем правильно)
                  Ответить
    • Это может быть не весь код. Я вот тут подумал это может быть часть системы ожидания какого нибудь события. Ну например запускается прога на писанная скажем на си и чего то там делает как сделала пишет файл spiski.txt' В системе вист пхпшный скрипт который ждет этот файл для каких то своих действий. Тогда получается говно не в коде а архитектуре.
      Ответить
      • is_file уместнее. Нет, даже file_exists или как его там.
        Ответить
        • я бы сказал всего лишь симантичней. я так думаю что внутри file_exists сидит

          return fopen($file, "r")===false?false:true;
          Ответить
          • а если он есть, но не читаем?
            или он есть, но уже кем-то залочен?

            бэд ньюс: не существует кросс-платформенного (ansi c) способа проверить существование файла

            к счастью, это врядли кому-то серьезно надо
            Ответить
            • Это конечно то да. Но чисто теоретически может быть и такое. Уж слишком этот код вырвано из контекста выглядит. Или же просто фейк.
              Ответить
      • надо делать хотя бы секундный слип между этими обращениями

        IPC сишной проги и пхпшного скрипта через файлы -- это круто конечно
        Ответить
      • > не в коде а архитектуре
        рахитектуре
        я недавно постил подобное
        Ответить
      • Так и есть наверняка. И хорошо, если пишет в spiski.txt.new, а потом переименовывает в spiski.txt.
        Ответить
    • показать все, что скрытоэтот мудак не знает что есть flock. да
      правда он кажись не работает в винде на fat32
      но каво ана ебет?
      Ответить
    • наверное опять с какого-то форума
      Ответить

    Добавить комментарий