mirror of
https://github.com/lcn2/calc.git
synced 2025-08-16 01:03:29 +03:00
Some folks might think: “you still use RCS”?!? And we will say, hey, at least we switched from SCCS to RCS back in … I think it was around 1994 ... at least we are keeping up! :-) :-) :-) Logs say that SCCS version 18 became RCS version 19 on 1994 March 18. RCS served us well. But now it is time to move on. And so we are switching to git. Calc releases produce a lot of file changes. In the 125 releases of calc since 1996, when I started managing calc releases, there have been 15473 file mods!
92 lines
2.9 KiB
Plaintext
92 lines
2.9 KiB
Plaintext
NAME
|
|
files - return a file or the maximum number of open files
|
|
|
|
SYNOPSIS
|
|
files([fnum])
|
|
|
|
TYPES
|
|
fnum int
|
|
|
|
return files, int or null
|
|
|
|
DESCRIPTION
|
|
This function, when given the argument fnum, will use it as an
|
|
index into an internal table of open file and return a file value.
|
|
If that entry in the table is not in use, then the null value is
|
|
returned instead. When no args are given, the maximum number of
|
|
open files is returned.
|
|
|
|
If you overwrite a variable containing a file value or don't save the
|
|
result of an 'fopen', the opened file still remains open. Such 'lost'
|
|
files can be recovered by using the 'files' function.
|
|
|
|
The first 3 file entries always refer to standard input, output
|
|
and error respectively. (see the example below) These three
|
|
files are already open by the calculator and cannot be closed.
|
|
|
|
When calc starts up, it scans for open file descriptors above
|
|
stderr (2) and below MAXFILES (20). Any open descriptor found
|
|
is assumed to be an open file opened in an unknown mode. Calc
|
|
will try to read and write to this file when directed.
|
|
|
|
Consider the following commands shell commands:
|
|
|
|
echo "A line of text in the file on descriptor 5" > datafile
|
|
calc 5<datafile
|
|
|
|
then one could do the following:
|
|
|
|
; files(5)
|
|
FILE 5 "descriptor[5]" (unknown_mode, pos 0)
|
|
; fgetline(files(5))
|
|
"A line of text in the file on descriptor 5"
|
|
|
|
EXAMPLE
|
|
; fd = fopen("/etc/motd", "r")
|
|
; fd
|
|
FILE 3 "/etc/motd" (reading, pos 0)
|
|
; files(3)
|
|
FILE 3 "/etc/motd" (reading, pos 0)
|
|
|
|
; if (isnull(files(4))) print "not open"
|
|
not open
|
|
|
|
; stdin = files(0)
|
|
; stdout = files(1)
|
|
; stderr = files(2)
|
|
|
|
; print files()
|
|
20
|
|
|
|
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
|
|
|
|
## 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.
|
|
##
|
|
## Under source code control: 1995/03/04 11:33:19
|
|
## File existed as early as: 1995
|
|
##
|
|
## chongo <was here> /\oo/\ http://www.isthe.com/chongo/
|
|
## Share and enjoy! :-) http://www.isthe.com/chongo/tech/comp/calc/
|