Почему fopen терпит неудачу в первый раз, а работает во второй раз? - PullRequest
3 голосов
/ 26 июля 2010

Я использую Matlab для создания нового файла, вызывая

fid = fopen(filename,'w')

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

Это работает на Ubuntu, но, видимо, прекрасно работает на Windows, и я не могу понять, почему.

-Mike

Ответы [ 2 ]

2 голосов
/ 26 июля 2010

не уверен, поможет ли это, но учтите, что если папка не существует, fopen с 'w' не может создать файл и возвращает -1.

0 голосов
/ 27 июля 2010

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

[fh, failmessage] = fopen( fname, 'wt' );
if fh == -1
    error( 'Failed to open %s: %s', fname, failmessage );
end
...