mirror of
https://github.com/lcn2/calc.git
synced 2025-08-19 01:13:27 +03:00
96 lines
3.0 KiB
Plaintext
96 lines
3.0 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.
|
|
## 59 Temple Place, Suite 330, Boston, MA 02111-1307, USA.
|
|
##
|
|
## @(#) $Revision: 29.4 $
|
|
## @(#) $Id: files,v 29.4 2006/06/10 12:28:10 chongo Exp $
|
|
## @(#) $Source: /usr/local/src/cmd/calc/help/RCS/files,v $
|
|
##
|
|
## 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/
|