Lichen

Annotated lib/sys.py

336:8c75cdf1a764
2016-12-06 Paul Boddie Introduced stream classes employing C-level FILE pointers, changing the sys stdin, stdout and stderr objects to be instances of these stream classes. Added fread and fwrite support to the native functions. Added support for raising EOFError.
paul@6 1
#!/usr/bin/env python
paul@6 2
paul@6 3
"""
paul@6 4
System functions and objects.
paul@6 5
paul@167 6
Copyright (C) 2008, 2012, 2014, 2016 Paul Boddie <paul@boddie.org.uk>
paul@6 7
paul@6 8
This program is free software; you can redistribute it and/or modify it under
paul@6 9
the terms of the GNU General Public License as published by the Free Software
paul@6 10
Foundation; either version 3 of the License, or (at your option) any later
paul@6 11
version.
paul@6 12
paul@6 13
This program is distributed in the hope that it will be useful, but WITHOUT
paul@6 14
ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS
paul@6 15
FOR A PARTICULAR PURPOSE.  See the GNU General Public License for more
paul@6 16
details.
paul@6 17
paul@6 18
You should have received a copy of the GNU General Public License along with
paul@6 19
this program.  If not, see <http://www.gnu.org/licenses/>.
paul@6 20
"""
paul@6 21
paul@311 22
from __builtins__.int import maxint, minint
paul@336 23
from posix.io import sysstream
paul@309 24
import native
paul@309 25
paul@173 26
# Standard streams.
paul@6 27
paul@336 28
stdin = sysstream(0)
paul@336 29
stdout = sysstream(1, "w")
paul@336 30
stderr = sysstream(2, "w")
paul@173 31
paul@173 32
# NOTE: Environment details to be implemented.
paul@6 33
paul@309 34
argv = native._get_argv()
paul@309 35
path = native._get_path()
paul@6 36
paul@6 37
# Functions to be implemented natively.
paul@6 38
paul@6 39
def exit(status=0):
paul@309 40
    native._exit(int(status))
paul@6 41
paul@6 42
# vim: tabstop=4 expandtab shiftwidth=4