2010-07-26 2 views
3

Я использую Matlab, чтобы создать новый файл, вызвавПочему fopen не работает в первый раз, но работает во второй раз?

fid = fopen(filename,'w') 

поскольку имя файла не существует, он должен создать новый файл и дать мне действительный дескриптор файла. Вместо этого он возвращает -1. Если я снова запустил код, я получаю fid = 3.

Это выполняется на ubuntu, но, по-видимому, он отлично работает на окнах, и я не могу понять, почему.

-Mike

+2

Вы пытались получить сообщение об ошибке, чтобы узнать, что он вам скажет? Вы можете сделать это, добавив к вызову следующий выходной аргумент: '[fid, message] = fopen (имя файла, 'w')'. – gnovice

ответ

2

не уверен, если это поможет, но учтите, что если папка не существует, Еореп с «W» не может создать файл и таким образом возвращает -1.

+0

Я исправляю код кого-то elses, какая команда создает папки? – msandbot

+0

У matlab есть своя команда mkdir – second

0

Вы должны проверить форму с двумя выходными аргументами fopen в документе here. Это позволяет делать такие вещи, как

[fh, failmessage] = fopen(fname, 'wt'); 
if fh == -1 
    error('Failed to open %s: %s', fname, failmessage); 
end 
Смежные вопросы