fopen always open the file even when it is already open

조회 수: 8 (최근 30일)
Florian Bidaud
Florian Bidaud 2022년 10월 19일
댓글: Florian Bidaud 2022년 10월 19일
Hi,
fopen is supposed to return -1 when it can't open the file. So I thought when I had the file open already it would return -1. But when I do it I always have the same output. Have I misunderstood how fopen works ?
I also can't open the file anymore as it gets corrupted if I use 'w' or 'W' option for fopen. I haven't found any explanation to that behaviour.
>> fopen('myFile.xlsx')
ans =
3
>> fclose('all')
ans =
0
% Here I open the file in Excel
>> fopen(myFile)
ans =
3
>> fclose('myFile.xlsx')
ans =
0
Thank you !

채택된 답변

Jan
Jan 2022년 10월 19일
편집: Jan 2022년 10월 19일
"fopen is supposed to return -1 when it can't open the file" - correct, this is the defined behavior.
"So I thought when I had the file open already it would return -1." - no, this is not the case. See above: If Matlab can open the file, a file handle is replied. You can open a file multiple times for reading.
"Have I misunderstood how fopen works ?" - Yes.
"I also can't open the file anymore as it gets corrupted if I use 'w' or 'W' option for fopen." - correct. 'W' and 'w' open the file for writing. This crops the existing contents of the file. You find this documented in:
doc fopen
The posted code shows the expected behavior.
  댓글 수: 1
Florian Bidaud
Florian Bidaud 2022년 10월 19일
Thank you for this answer.
I've read that page already.
I understand that we can open several files for reading, but I've found plenty of topics suggesting using fopen to check if an Excel file was already open, that's why I' m confused.

댓글을 달려면 로그인하십시오.

추가 답변 (0개)

카테고리

Help CenterFile Exchange에서 Spreadsheets에 대해 자세히 알아보기

태그

제품


릴리스

R2021b

Community Treasure Hunt

Find the treasures in MATLAB Central and discover how the community can help you!

Start Hunting!

Translated by