2015-03-25 3 views
0

У меня есть сценарий в MATLAB, который выводит различные файлы, включая файлы NIFTI (MRI images) и файлы текстового журнала. Иногда создаваемые файлы вывода имеют свои права доступа к файлам, которые не могут быть прочитаны или записаны никому, включая владельца файла, и это происходит случайно.Matlab создает файлы без разрешения

Это обычно не проблема, если это не связано с журналами, поскольку он приводит MATLAB к бесконечной рекурсии, когда он пытается записать ошибку в журналы. К сожалению, я не смог найти тех, кто испытал подобное поведение из любой программы, включая MATLAB.

Сценарий, входные файлы и выходные файлы находятся на приводе NAS, подключенном к серверу под управлением Ubuntu 14.04, поэтому мне интересно, если это проблема со сценарием (вероятно, не потому, что это происходит периодически, независимо от того, вход), среду matlab или накопитель NAS.

ответ

0

Я не уверен, почему изменения файла/разрешения yoru меняются, но я знаю решение. Вы хотите file attributes, если вы знаете chmod от UNIX это должно быть знакомо, если вы не все еще будете хорошо

что-то, как это будет делать ваши файлы ж riteable для групп пользователей через Л.Л. на (Ubuntu) систем UNIX

fileattrib('/home/work/results/my_file.log','+w','a') 

редактировать

, так как эти файлы несуществующие это может работать лучше. Просто используйте fopen с флагом 'w +'. Это означает режим записи для добавления. + Будет также создать файл, если он не существует (и у вас есть разрешение на создание файлов в указанном каталоге)

fid = fopen('my_new_log.txt','w+'); 
fprintf(fid,'some strings for my file'); 
fclose(fid); 

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

+0

Не было бы просто изменить атрибуты для файла или файлов, которые уже существуют? Мне нужно предотвратить это поведение, так как это заставляет Matlab остановить скрипт и выбросить ошибку. – Craig

+0

Я вижу сейчас. Я думал, вы изменили файл в Matlab, а затем ПОСЛЕ изменения его прав были разными. Попробуйте опубликовать часть своего кода (возможно, там, где вы создаете и закрываете файлы) может быть что-то еще в игре. Возможно, есть ошибка при написании/закрытии файлов, поэтому он оставляет разрешения в странном состоянии, но Id должен видеть больше, чтобы знать наверняка. – andrew

+0

К сожалению, я не думаю, что могу опубликовать код. Сценарий является частью другого трубопровода лаборатории; и размер, и ограничения разрешений затруднят. – Craig

Смежные вопросы