+ Ответить в теме
Показано с 1 по 3 из 3

Тема: Неправильно проверяется наличие файла. Где ошибка?

  1. #1
    accessdenied is on a distinguished road Аватар для accessdenied
    Регистрация
    13.11.2008
    Адрес
    Россия, Нижний Новгород
    Возраст
    41
    Сообщений
    5
    Вес репутации
    0

    По умолчанию Неправильно проверяется наличие файла. Где ошибка?

    Нужна помощь.

    Есть скрипт, в котором делается следующее:

    open(VMS_RUNNING, "vmrun list");
    while ( my $vm = <VMS_RUNNING> ) {
    chomp($vm);
    print "DEBUG: processing $vm\n";
    if ( -f $vm) {
    print "DEBUG: file exists\n";
    }
    }

    И вот этот кусок ну ни в какую не работает как надо.

    vmrun выдает список путей к файлам виртуальных машин, которые запущены в данный момент. chomp отрезает пробелы и перевод строки. А потом вдруг if не срабатывает, будто файла и нет вовсе, хотя в дебаге печатается правильное имя файла.

    В то же время небольшой скриптец работает как надо:
    my @afile="/path/to/file";
    my ($sfile)=@afile;
    if ( -f $sfile ) {
    print "DEBUG2: file exists\n";
    } else {
    print "DEBUG2: no such file\n";
    }

    В этом маленьком скрипте все как надо - если есть файл - назодит, если нет, то не находит, соответственно.

    А в первом скрипте что-то странное, будто логика наоборот.
    Есть подозрение что упускаю какое-то нужное преобразование, но сам никак не додумаюсь в чем же все-таки дело.

    Кто-нибудь с таким сталкивался? Какие есть идеи?

  2. По умолчанию

     
    Хотите избавиться от рекламы? Зарегистрируйтесь
  3. #2
    accessdenied is on a distinguished road Аватар для accessdenied
    Регистрация
    13.11.2008
    Адрес
    Россия, Нижний Новгород
    Возраст
    41
    Сообщений
    5
    Вес репутации
    0

    По умолчанию Re: Неправильно проверяется наличие файла. Где ошибка?

    Посидел, обнаружил условие, при котором все это происходит.

    В первом скрипте нужны рутовые права, поэтому запускается он через sudo.
    Второй же я запускал из-под своего логина.

    Если и второй запустить через sudo, то возникает та же ошибка - в упор не видит файлов, к которым получает правильные пути.

    Что тут может быть такого особенного при запуске через sudo?
    К сожалению не могу проверить как работает если из-под рута запустить, потому как пароля нет.

  4. #3
    accessdenied is on a distinguished road Аватар для accessdenied
    Регистрация
    13.11.2008
    Адрес
    Россия, Нижний Новгород
    Возраст
    41
    Сообщений
    5
    Вес репутации
    0

    По умолчанию Re: Неправильно проверяется наличие файла. Где ошибка?

    Нашлось в чем дело.

    В /path/to/file один каталог не читаем для others, а root не входит в ту же группу, что владелец папки, так что не может получить доступа туда.

    Всю голову сломал, а такая фигня.
    Тема закрыта.

+ Ответить в теме

Похожие темы

  1. Ошибка при чтении файла
    Я хочу с файла прочесть все строки, вот код: #include "stdafx.h" #include <iostream> #include <conio.h> using namespace std; int main(int...
    от Stock в разделе C и C++
  2. ошибка при открытии файла
    Во время тестирования программы, при открытии файла, состоящего из двух слов с пробелом программа выдает ошибку 4160 и сообщение: неправильное имя...
    от kminas в разделе MS Office и VB(A).
  3. ошибка подключения файла ресурсов
    При подключении к BPL текстового файла ресурсов и попытке пересобрать проект возникает ошибка Input and output file names are the same в...
    от novicer в разделе Delphi и Pascal
  4. После удаления антивируса неправильно отображается служба w2
    Удалил Антивирус Касперского (просроченный) и, наверное, неправильно, т.к. после этого окно службы windows Пуск - Настройка - Панель управления -...
    от komarov в разделе Операционные системы
  5. Неправильно считается формула?
    Никогда не сталкивался, кажется, результат расчета по формуле неправильный. Приложил бы файл .xls, но не знаю, как это сделать.
    от komarov в разделе MS Office и VB(A).

Ваши права

  • Вы не можете создавать новые темы
  • Вы не можете отвечать в темах
  • Вы не можете прикреплять вложения
  • Вы не можете редактировать свои сообщения