mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
135 lines
4.4 KiB
Plaintext
135 lines
4.4 KiB
Plaintext
NAME
|
|
fopen - open a file
|
|
|
|
SYNOPSIS
|
|
fopen(filename, mode)
|
|
|
|
TYPES
|
|
filename string
|
|
mode string
|
|
|
|
return file
|
|
|
|
DESCRIPTION
|
|
This function opens the file named filename. A file can be
|
|
opened for either reading, writing, or appending. The mode
|
|
is controlled by the mode flag as follows:
|
|
|
|
allow allow file is positioned file(*)
|
|
mode reading writing truncated at mode
|
|
---- ------- ------- --------- --------- ----
|
|
r Y N N beginning text
|
|
rb Y N N beginning binary
|
|
r+ Y N N beginning text
|
|
r+b Y N N beginning binary
|
|
rb+ Y N N beginning binary
|
|
|
|
w N Y Y beginning text
|
|
wb N Y Y beginning binary
|
|
w+ Y Y Y beginning text
|
|
w+b Y Y Y beginning binary
|
|
wb+ Y Y Y beginning binary
|
|
|
|
a N Y Y end text
|
|
ab N Y Y end binary
|
|
a+ Y Y Y end text
|
|
a+b Y Y Y end binary
|
|
ab+ Y Y Y end binary
|
|
|
|
(*) NOTE on 'b' / binary/text mode:
|
|
|
|
The 'b' or fopen binary mode has no effect on POSIX / Linux
|
|
/ Un*x-like systems. On those systems a text file is the
|
|
same as a binary file (as it should be for any modern-day
|
|
operating system). Adding 'b' to an fopen has no effect
|
|
and is ignored.
|
|
|
|
Some non-POSIX systems sucn as MS Windoz treat text files
|
|
and binary files differently. In text mode MS Windoz consider
|
|
"\r\n" and end-of-line character. On an Apple MAC, the
|
|
text mode end-of-line character is "\r".
|
|
|
|
Names of files are subject to ~ expansion just like the C or
|
|
Korn shell. For example, the file name:
|
|
|
|
~/lib/gleet
|
|
|
|
refers to the file 'gleet' under the directory lib located
|
|
in your home directory. The file name:
|
|
|
|
~chongo/was_here
|
|
|
|
refers to the a file 'was_here' under the home directory of
|
|
the user 'chongo'.
|
|
|
|
If the open is successful, a value of type 'file' will be returned.
|
|
You can use the 'isfile' function to test the return value to see
|
|
if the open succeeded. You should assign the return value of fopen
|
|
to a variable for later use. File values can be copied to more than
|
|
one variable, and using any of the variables with the same file value
|
|
will produce the same results.
|
|
|
|
Standard input, standard output and standard error are always opened
|
|
and cannot be closed.
|
|
|
|
The truth value of an opened file is TRUE.
|
|
|
|
If the open is unsuccessful, the numeric value of errno is returned.
|
|
You can the strerror() builtin to determine what the errno number means.
|
|
|
|
EXAMPLE
|
|
; fd = fopen("/etc/motd", "r")
|
|
; print fd
|
|
"/etc/motd"
|
|
; fd
|
|
FILE 3 "/etc/motd" (reading, pos 0)
|
|
|
|
; outfile = fopen("~/tmp/output", "w")
|
|
; print outfile
|
|
"~/tmp/output"
|
|
; outfile
|
|
FILE 4 "~/tmp/output" (writing, pos 0)
|
|
|
|
; badfile = fopen("not_a_file", "r");
|
|
; if (!isfile(badfile)) {
|
|
;; printf("error(%d): %s\n", errno(badfile), strerror(badfile));
|
|
;; }
|
|
error(2): No such file or directory
|
|
|
|
LIMITS
|
|
none
|
|
|
|
LINK LIBRARY
|
|
none
|
|
|
|
SEE ALSO
|
|
errno, fclose, feof, ferror, fflush, fgetc, fgetline, fgets, files, fopen,
|
|
fprintf, fputc, fputs, fseek, fsize, ftell, isfile, printf, prompt,
|
|
fpathopen, strerror
|
|
|
|
## Copyright (C) 1999-2006 Landon Curt Noll
|
|
##
|
|
## Calc is open software; you can redistribute it and/or modify it under
|
|
## the terms of the version 2.1 of the GNU Lesser General Public License
|
|
## as published by the Free Software Foundation.
|
|
##
|
|
## Calc is distributed in the hope that it will be useful, but WITHOUT
|
|
## ANY WARRANTY; without even the implied warranty of MERCHANTABILITY
|
|
## or FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General
|
|
## Public License for more details.
|
|
##
|
|
## A copy of version 2.1 of the GNU Lesser General Public License is
|
|
## distributed with calc under the filename COPYING-LGPL. You should have
|
|
## received a copy with calc; if not, write to Free Software Foundation, Inc.
|
|
## 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
|
|
##
|
|
## @(#) $Revision: 30.1 $
|
|
## @(#) $Id: fopen,v 30.1 2007/03/16 11:10:42 chongo Exp $
|
|
## @(#) $Source: /usr/local/src/bin/calc/help/RCS/fopen,v $
|
|
##
|
|
## Under source code control: 1994/10/27 03:04:17
|
|
## File existed as early as: 1994
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|