Class Stdio.File
- Annotations
@Pike.Annotations.Implements(NonblockingStream)
@Pike.Annotations.Implements(BlockFile)
- Description
This is the basic I/O object, it provides socket and pipe communication as well as file access. It does not buffer reads and writes by default, and provides no line-by-line reading, that is done with Stdio.FILE object.
- Note
The file or stream will normally be closed when this object is destructed (unless there are more objects that refer to the same file through use of assign or dup). Objects do not contain cyclic references in themselves, so they will be destructed timely when they run out of references.
- See also
- Inherit
Fd
optional
inherit Fd : Fd
- Method
create
Stdio.File Stdio.File()
Stdio.File Stdio.File(
string(8bit)
filename
)
Stdio.File Stdio.File(
string(8bit)
filename
,string(7bit)
mode
)
Stdio.File Stdio.File(
string(8bit)
filename
,string(7bit)
mode
,int
mask
)
Stdio.File Stdio.File(
string(8bit)
descriptorname
)
Stdio.File Stdio.File(
int
fd
)
Stdio.File Stdio.File(
int
fd
,string(7bit)
mode
)- Description
There are four basic ways to create a Stdio.File object. The first is calling it without any arguments, in which case the you'd have to call open(), connect() or some other method which connects the File object with a stream.
The second way is calling it with a filename and open mode. This is the same thing as cloning and then calling open(), except shorter and faster.
The third way is to call it with descriptorname of
"stdin"
,"stdout"
or"stderr"
. This will open the specified standard stream.For the advanced users, you can use the file descriptors of the systems (note: emulated by pike on some systems - like NT). This is only useful for streaming purposes on unix systems. This is not recommended at all if you don't know what you're into. Default mode for this is
"rw"
.- Note
Open mode will be filtered through the system UMASK. You might need to use
chmod()
later.- See also