Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2014.08.03;
Скачать: CL | DM;

Вниз

virtualbox + fmCreate + Read = EPROTO   Найти похожие ветки 

 
Дмитрий СС   (2014-01-08 19:32) [0]

Имеется:
Windows 7.
Debian на virtualbox-е.
Подключена общая папка.
В этой папке лежит програмка написанная на freepascal.
В определенной части кода она создает временный файл Tmp := TFileStream.Create("...", fmCreate);
Файл заполняется.
После чего делается Tmp.Seek(0, 0) и попытка чтения.
Но Tmp.Read(...) возвращает 0. С помощью strace я установил, что соответствующий вызов read возвращает EPROTO "Protocol error".

strace строка для создания файла:
open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5

Если открываемый файл находится на локальном разделе, то читается/пишется он нормально.

Программа выполняется от имени root.

Какие могут быть идеи?


 
Дмитрий СС   (2014-01-08 19:53) [1]

Анализ с помощью Process monitor на хост ОС показал, что virtualbox даже не пытается читать этот файл (только записывает)


 
icelex ©   (2014-01-10 12:55) [2]

разрешения не выставлены?


 
Дмитрий СС   (2014-01-11 10:18) [3]

На виртуальной ос выполняется под рутом.
На хост все права есть. Даже под админом запускается.
Ошибка чтения именно файлов открытых с флагом fmCreate. Если открыть ReadWrite ошибки нет.

Временно сделал через сетевую папку - так работает.

Пс. Виртуалбокс обновил, дебиан тоже. Не помогает.
Всякие багрепорты читал - ничего толкого. Пишут что исправленно: баг закрыт, если проявится откройте снова. И все хрен знает каких времен.


 
sniknik ©   (2014-01-11 11:13) [4]

> strace строка для создания файла:
> open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5
моде разве не в 16 ном формате задается обычно? я к тому что в 10м не очень хорошо видно. и попробуй поставить $0777 или (тоже самое) S_IRWXU or S_IRWXG or S_IRWXO


 
Дмитрий СС   (2014-01-12 00:39) [5]


> open("...",O_RDWR|O_CREAT|O_TRUNC|O_LARGEFILE, 0666) = 5

Это строка из вывода strace. Видимо на языке в котором предшествующий ноль обозначает восьмеричную систему.

Пробовал указывать вручную 777 (во фрипаскале это &777) - эффект тот же самый. К слову сказать, шары виртуалбокса не поддерживают управление правами.



Страницы: 1 вся ветка

Текущий архив: 2014.08.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.006 c
3-1299221012
Junior
2011-03-04 09:43
2014.08.03
Поиск текста в строках SQL сервера


15-1389417411
Viktor Makarov
2014-01-11 09:16
2014.08.03
Помогите пожалуйста написать код для этой задачи)


15-1389342603
Юрий
2014-01-10 12:30
2014.08.03
С днем рождения ! 10 января 2014 пятница


15-1389182442
RDen
2014-01-08 16:00
2014.08.03
hdmi - usb


2-1379178090
Вова
2013-09-14 21:01
2014.08.03
Оптимизация кода 2. и еще не могу найти ошибку )