MATLAB Function Reference |
Open file, or obtain information about open files
Syntax
fid = fopen(filename) fid = fopen(filename, mode) [fid,message] = fopen(filename, mode, machineformat) fids = fopen('all') [filename, mode, machineformat] = fopen(fid)
Description
fid = fopen(filename)
opens the file filename
for read access. (On PCs, fopen
opens files for binary read access.)
fid
is a scalar MATLAB integer, called a file identifier. You use the fid
as the first argument to other file input/output routines. If fopen
cannot open the file, it returns -1
. Two file identifiers are automatically available and need not be opened. They are fid=1
(standard output) and fid=2
(standard error).
fid = fopen(filename, mode)
opens the file filename
in the specified mode
. The mode
argument can be any of the following:
filename
can be a MATLABPATH
relative partial pathname if the file is opened for reading only. A relative path is always searched for first with respect to the current directory. If it is not found, and reading only is specified or implied, then fopen
does an additional search of the MATLABPATH
.
Files can be opened in binary mode (the default) or in text mode. In binary mode, no characters are singled out for special treatment. In text mode on the PC, the carriage return character preceding a newline character is deleted on input and added before the newline character on output. To open in text mode, add "t
" to the end of the mode
string, for example 'rt'
and 'wt+'
. (On UNIX, text and binary mode are the same, so this has no effect. But on PC systems this is critical.)
Note
If the file is opened in update mode ('+' ), an input command like fread , fscanf , fgets , or fgetl cannot be immediately followed by an output command like fwrite or fprintf without an intervening fseek or frewind . The reverse is also true: that is, an output command like fwrite or fprintf cannot be immediately followed by an input command like fread , fscanf , fgets , or fgetl without an intervening fseek or frewind .
|
[fid,message] = fopen(filename, mode)
opens a file as above. If it cannot open the file, fid
equals -1
and message
contains a system-dependent error message. If fopen
successfully opens a file, the value of message
is empty.
[fid,message] = fopen(filename, mode, machineformat)
opens the specified file with the specified mode
and treats data read using fread
or data written using fwrite
as having a format given by machineformat
. machineformat
is one of the following strings:
fids = fopen('all')
returns a row vector containing the file identifiers of all open files, not including 1
and 2
(standard output and standard error). The number of elements in the vector is equal to the number of open files.
[filename, mode, machineformat] = fopen(fid)
returns the filename
, mode
string, and machineformat
string associated with the specified file. An invalid fid
returns empty strings for all output arguments.
The 'W'
and 'A'
modes are designed for use with tape drives and do not automatically perform a flush of the current output buffer after output operations. For example, open a 1/4" cartridge tape on a SPARCstation for writing with no autoflush:
Examples
The example uses fopen
to open a file and then passes the fid
returned by fopen
to other file I/O functions to read data from the file and then close the file.
fid = fopen('fgetl.m'); while 1 tline = fgetl(fid); if ~ischar(tline), break, end disp(tline) end fclose(fid);
See Also
fclose
, ferror
, fprintf
, fread
, fscanf
, fseek
, ftell
, fwrite
fminsearch | for |
© 1994-2005 The MathWorks, Inc.