os
index
/usr/lib/python3.1/os.py
Module Docs

OS routines for Mac, NT, or Posix depending on what system we're on.
 
This exports:
  - all functions from posix, nt, os2, or ce, e.g. unlink, stat, etc.
  - os.path is either posixpath or ntpath
  - os.name is either 'posix', 'nt', 'os2' or 'ce'.
  - os.curdir is a string representing the current directory ('.' or ':')
  - os.pardir is a string representing the parent directory ('..' or '::')
  - os.sep is the (or a most common) pathname separator ('/' or ':' or '\\')
  - os.extsep is the extension separator (always '.')
  - os.altsep is the alternate pathname separator (None or '/')
  - os.pathsep is the component separator used in $PATH etc
  - os.linesep is the line separator in text files ('\r' or '\n' or '\r\n')
  - os.defpath is the default search path for executables
  - os.devnull is the file path of the null device ('/dev/null', etc.)
 
Programs that import and use 'os' stand a better chance of being
portable between different platforms.  Of course, they must then
only use functions that are defined by all platforms (e.g., unlink
and opendir), and leave all pathname manipulation to os.path
(e.g., split and join).

 
Modules
       
copyreg
errno
posixpath
sys

 
Classes
       
builtins.EnvironmentError(builtins.Exception)
builtins.OSError
builtins.object
posix.stat_result
posix.statvfs_result

 
error = class OSError(EnvironmentError)
    OS system call failed.
 
 
Method resolution order:
OSError
EnvironmentError
Exception
BaseException
object

Methods defined here:
__init__(...)
x.__init__(...) initializes x; see x.__class__.__doc__ for signature

Data and other attributes defined here:
__new__ = <built-in method __new__ of type object at 0x7f327d94afc0>
T.__new__(S, ...) -> a new object with type S, a subtype of T

Methods inherited from EnvironmentError:
__reduce__(...)
__str__(...)
x.__str__() <==> str(x)

Data descriptors inherited from EnvironmentError:
errno
exception errno
filename
exception filename
strerror
exception strerror

Methods inherited from BaseException:
__delattr__(...)
x.__delattr__('name') <==> del x.name
__getattribute__(...)
x.__getattribute__('name') <==> x.name
__repr__(...)
x.__repr__() <==> repr(x)
__setattr__(...)
x.__setattr__('name', value) <==> x.name = value
__setstate__(...)
with_traceback(...)
Exception.with_traceback(tb) --
set self.__traceback__ to tb and return self.

Data descriptors inherited from BaseException:
__cause__
exception cause
__context__
exception context
__dict__
__traceback__
args

 
class stat_result(builtins.object)
    stat_result: Result from stat or lstat.
 
This object may be accessed either as a tuple of
  (mode, ino, dev, nlink, uid, gid, size, atime, mtime, ctime)
or via the attributes st_mode, st_ino, st_dev, st_nlink, st_uid, and so on.
 
Posix/windows: If your platform supports st_blksize, st_blocks, st_rdev,
or st_flags, they are available as attributes only.
 
See os.stat for more information.
 
  Methods defined here:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__reduce__(...)
__repr__(...)
x.__repr__() <==> repr(x)
__rmul__(...)
x.__rmul__(n) <==> n*x

Data descriptors defined here:
st_atime
time of last access
st_blksize
blocksize for filesystem I/O
st_blocks
number of blocks allocated
st_ctime
time of last change
st_dev
device
st_gid
group ID of owner
st_ino
inode
st_mode
protection bits
st_mtime
time of last modification
st_nlink
number of hard links
st_rdev
device type (if inode device)
st_size
total size, in bytes
st_uid
user ID of owner

Data and other attributes defined here:
__new__ = <built-in method __new__ of type object at 0x7f327d99e840>
T.__new__(S, ...) -> a new object with type S, a subtype of T
n_fields = 16
n_sequence_fields = 10
n_unnamed_fields = 3

 
class statvfs_result(builtins.object)
    statvfs_result: Result from statvfs or fstatvfs.
 
This object may be accessed either as a tuple of
  (bsize, frsize, blocks, bfree, bavail, files, ffree, favail, flag, namemax),
or via the attributes f_bsize, f_frsize, f_blocks, f_bfree, and so on.
 
See os.statvfs for more information.
 
  Methods defined here:
__add__(...)
x.__add__(y) <==> x+y
__contains__(...)
x.__contains__(y) <==> y in x
__eq__(...)
x.__eq__(y) <==> x==y
__ge__(...)
x.__ge__(y) <==> x>=y
__getitem__(...)
x.__getitem__(y) <==> x[y]
__gt__(...)
x.__gt__(y) <==> x>y
__hash__(...)
x.__hash__() <==> hash(x)
__le__(...)
x.__le__(y) <==> x<=y
__len__(...)
x.__len__() <==> len(x)
__lt__(...)
x.__lt__(y) <==> x<y
__mul__(...)
x.__mul__(n) <==> x*n
__ne__(...)
x.__ne__(y) <==> x!=y
__reduce__(...)
__repr__(...)
x.__repr__() <==> repr(x)
__rmul__(...)
x.__rmul__(n) <==> n*x

Data descriptors defined here:
f_bavail
f_bfree
f_blocks
f_bsize
f_favail
f_ffree
f_files
f_flag
f_frsize
f_namemax

Data and other attributes defined here:
__new__ = <built-in method __new__ of type object at 0x7f327d99e9e0>
T.__new__(S, ...) -> a new object with type S, a subtype of T
n_fields = 10
n_sequence_fields = 10
n_unnamed_fields = 0

 
Functions
       
WCOREDUMP(...)
WCOREDUMP(status) -> bool
 
Return True if the process returning 'status' was dumped to a core file.
WEXITSTATUS(...)
WEXITSTATUS(status) -> integer
 
Return the process return code from 'status'.
WIFCONTINUED(...)
WIFCONTINUED(status) -> bool
 
Return True if the process returning 'status' was continued from a
job control stop.
WIFEXITED(...)
WIFEXITED(status) -> bool
 
Return true if the process returning 'status' exited using the exit()
system call.
WIFSIGNALED(...)
WIFSIGNALED(status) -> bool
 
Return True if the process returning 'status' was terminated by a signal.
WIFSTOPPED(...)
WIFSTOPPED(status) -> bool
 
Return True if the process returning 'status' was stopped.
WSTOPSIG(...)
WSTOPSIG(status) -> integer
 
Return the signal that stopped the process that provided
the 'status' value.
WTERMSIG(...)
WTERMSIG(status) -> integer
 
Return the signal that terminated the process that provided the 'status'
value.
abort(...)
abort() -> does not return!
 
Abort the interpreter immediately.  This 'dumps core' or otherwise fails
in the hardest way possible on the hosting operating system.
access(...)
access(path, mode) -> True if granted, False otherwise
 
Use the real uid/gid to test for access to a path.  Note that most
operations will use the effective uid/gid, therefore this routine can
be used in a suid/sgid environment to test if the invoking user has the
specified access to the path.  The mode argument can be F_OK to test
existence, or the inclusive-OR of R_OK, W_OK, and X_OK.
chdir(...)
chdir(path)
 
Change the current working directory to the specified path.
chmod(...)
chmod(path, mode)
 
Change the access permissions of a file.
chown(...)
chown(path, uid, gid)
 
Change the owner and group id of path to the numeric uid and gid.
chroot(...)
chroot(path)
 
Change root directory to path.
close(...)
close(fd)
 
Close a file descriptor (for low level IO).
closerange(...)
closerange(fd_low, fd_high)
 
Closes all file descriptors in [fd_low, fd_high), ignoring errors.
confstr(...)
confstr(name) -> string
 
Return a string-valued system configuration variable.
ctermid(...)
ctermid() -> string
 
Return the name of the controlling terminal for this process.
device_encoding(...)
device_encoding(fd) -> str
 
Return a string describing the encoding of the device
if the output is a terminal; else return None.
dup(...)
dup(fd) -> fd2
 
Return a duplicate of a file descriptor.
dup2(...)
dup2(old_fd, new_fd)
 
Duplicate file descriptor.
execl(file, *args)
execl(file, *args)
 
Execute the executable file with argument list args, replacing the
current process.
execle(file, *args)
execle(file, *args, env)
 
Execute the executable file with argument list args and
environment env, replacing the current process.
execlp(file, *args)
execlp(file, *args)
 
Execute the executable file (which is searched for along $PATH)
with argument list args, replacing the current process.
execlpe(file, *args)
execlpe(file, *args, env)
 
Execute the executable file (which is searched for along $PATH)
with argument list args and environment env, replacing the current
process.
execv(...)
execv(path, args)
 
Execute an executable path with arguments, replacing current process.
 
        path: path of executable file
        args: tuple or list of strings
execve(...)
execve(path, args, env)
 
Execute a path with arguments and environment, replacing current process.
 
        path: path of executable file
        args: tuple or list of arguments
        env: dictionary of strings mapping to strings
execvp(file, args)
execp(file, args)
 
Execute the executable file (which is searched for along $PATH)
with argument list args, replacing the current process.
args may be a list or tuple of strings.
execvpe(file, args, env)
execvpe(file, args, env)
 
Execute the executable file (which is searched for along $PATH)
with argument list args and environment env , replacing the
current process.
args may be a list or tuple of strings.
fchdir(...)
fchdir(fildes)
 
Change to the directory of the given file descriptor.  fildes must be
opened on a directory, not a file.
fchmod(...)
fchmod(fd, mode)
 
Change the access permissions of the file given by file
descriptor fd.
fchown(...)
fchown(fd, uid, gid)
 
Change the owner and group id of the file given by file descriptor
fd to the numeric uid and gid.
fdatasync(...)
fdatasync(fildes)
 
force write of file with filedescriptor to disk.
 does not force update of metadata.
fork(...)
fork() -> pid
 
Fork a child process.
Return 0 to child process and PID of child to parent process.
forkpty(...)
forkpty() -> (pid, master_fd)
 
Fork a new process with a new pseudo-terminal as controlling tty.
 
Like fork(), return 0 as pid to child process, and PID of child to parent.
To both, return fd of newly opened pseudo-terminal.
fpathconf(...)
fpathconf(fd, name) -> integer
 
Return the configuration limit name for the file descriptor fd.
If there is no limit, return -1.
fstat(...)
fstat(fd) -> stat result
 
Like stat(), but&nb
/* (C)opyright MMVI-MMVII Anselm R. Garbe <garbeam at gmail dot com>
 * See LICENSE file for license details.
 */
#include "dwm.h"
#include <stdarg.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/wait.h>
#include <unistd.h>

/* extern */

void *
emallocz(unsigned int size) {
	void *res = calloc(1, size);

	if(!res)
		eprint("fatal: could not malloc() %u bytes\n", size);
	return res;
}

void
eprint(const char *errstr, ...) {
	va_list ap;

	va_start(ap, errstr);
	vfprintf(stderr, errstr, ap);
	va_end(ap);
	exit(EXIT_FAILURE);
}

void *
erealloc(void *ptr, unsigned int size) {
	void *res = realloc(ptr, size);

	if(!res)
		eprint("fatal: could not malloc() %u bytes\n", size);
	return res;
}

void
spawn(Arg *arg) {
	static char *shell = NULL;

	if(!shell && !(shell = getenv("SHELL")))
		shell = "/bin/sh";
	if(!arg->cmd)
		return;
	/* The double-fork construct avoids zombie processes and keeps the code
	 * clean from stupid signal handlers. */
	if(fork() == 0) {
		if(fork() == 0) {
			if(dpy)
				close(ConnectionNumber(dpy));
			setsid();
			execl(shell, shell, "-c", arg->cmd, (char *)NULL);
			fprintf(stderr, "dwm: execl '%s -c %s'", shell, arg->cmd);
			perror(" failed");
		}
		exit(0);
	}
	wait(0);
}
l>
setegid(...)
setegid(gid)
 
Set the current process's effective group id.
seteuid(...)
seteuid(uid)
 
Set the current process's effective user id.
setgid(...)
setgid(gid)
 
Set the current process's group id.
setgroups(...)
setgroups(list)
 
Set the groups of the current process to list.
setpgid(...)
setpgid(pid, pgrp)
 
Call the system call setpgid().
setpgrp(...)
setpgrp()
 
Make this process a session leader.
setregid(...)
setregid(rgid, egid)
 
Set the current process's real and effective group ids.
setreuid(...)
setreuid(ruid, euid)
 
Set the current process's real and effective user ids.
setsid(...)
setsid()
 
Call the system call setsid().
setuid(...)
setuid(uid)
 
Set the current process's user id.
spawnl(mode, file, *args)
spawnl(mode, file, *args) -> integer
 
Execute file with arguments from args in a subprocess.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnle(mode, file, *args)
spawnle(mode, file, *args, env) -> integer
 
Execute file with arguments from args in a subprocess with the
supplied environment.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnlp(mode, file, *args)
spawnlp(mode, file, *args) -> integer
 
Execute file (which is looked for along $PATH) with arguments from
args in a subprocess with the supplied environment.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnlpe(mode, file, *args)
spawnlpe(mode, file, *args, env) -> integer
 
Execute file (which is looked for along $PATH) with arguments from
args in a subprocess with the supplied environment.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnv(mode, file, args)
spawnv(mode, file, args) -> integer
 
Execute file with arguments from args in a subprocess.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnve(mode, file, args, env)
spawnve(mode, file, args, env) -> integer
 
Execute file with arguments from args in a subprocess with the
specified environment.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnvp(mode, file, args)
spawnvp(mode, file, args) -> integer
 
Execute file (which is looked for along $PATH) with arguments from
args in a subprocess.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
spawnvpe(mode, file, args, env)
spawnvpe(mode, file, args, env) -> integer
 
Execute file (which is looked for along $PATH) with arguments from
args in a subprocess with the supplied environment.
If mode == P_NOWAIT return the pid of the process.
If mode == P_WAIT return the process's exit code if it exits normally;
otherwise return -SIG, where SIG is the signal that killed it.
stat(...)
stat(path) -> stat result
 
Perform a stat system call on the given path.
stat_float_times(...)
stat_float_times([newval]) -> oldval
 
Determine whether os.[lf]stat represents time stamps as float objects.
If newval is True, future calls to stat() return floats, if it is False,
future calls return ints. 
If newval is omitted, return the current setting.
statvfs(...)
statvfs(path) -> statvfs result
 
Perform a statvfs system call on the given path.
strerror(...)
strerror(code) -> string
 
Translate an error code to a message string.
symlink(...)
symlink(src, dst)
 
Create a symbolic link pointing to src named dst.
sysconf(...)
sysconf(name) -> integer
 
Return an integer-valued system configuration variable.
system(...)
system(command) -> exit_status
 
Execute the command (a string) in a subshell.
tcgetpgrp(...)
tcgetpgrp(fd) -> pgid
 
Return the process group associated with the terminal given by a fd.
tcsetpgrp(...)
tcsetpgrp(fd, pgid)
 
Set the process group associated with the terminal given by a fd.
times(...)
times() -> (utime, stime, cutime, cstime, elapsed_time)
 
Return a tuple of floating point numbers indicating process times.
ttyname(...)
ttyname(fd) -> string
 
Return the name of the terminal device connected to 'fd'.
umask(...)
umask(new_mask) -> old_mask
 
Set the current numeric umask and return the previous umask.
uname(...)
uname() -> (sysname, nodename, release, version, machine)
 
Return a tuple identifying the current operating system.
unlink(...)
unlink(path)
 
Remove a file (same as remove(path)).
unsetenv(...)
unsetenv(key)
 
Delete an environment variable.
utime(...)
utime(path, (atime, mtime))
utime(path, None)
 
Set the access and modified time of the file to the given values.  If the
second form is used, set the access and modified times to the current time.
wait(...)
wait() -> (pid, status)
 
Wait for completion of a child process.
wait3(...)
wait3(options) -> (pid, status, rusage)
 
Wait for completion of a child process.
wait4(...)
wait4(pid, options) -> (pid, status, rusage)
 
Wait for completion of a given child process.
waitpid(...)
waitpid(pid, options) -> (pid, status)
 
Wait for completion of a given child process.
walk(top, topdown=True, onerror=None, followlinks=False)
Directory tree generator.
 
For each directory in the directory tree rooted at top (including top
itself, but excluding '.' and '..'), yields a 3-tuple
 
    dirpath, dirnames, filenames
 
dirpath is a string, the path to the directory.  dirnames is a list of
the names of the subdirectories in dirpath (excluding '.' and '..').
filenames is a list of the names of the non-directory files in dirpath.
Note that the names in the lists are just names, with no path components.
To get a full path (which begins with top) to a file or directory in
dirpath, do os.path.join(dirpath, name).
 
If optional arg 'topdown' is true or not specified, the triple for a
directory is generated before the triples for any of its subdirectories
(directories are generated top down).  If topdown is false, the triple
for a directory is generated after the triples for all of its
subdirectories (directories are generated bottom up).
 
When topdown is true, the caller can modify the dirnames list in-place
(e.g., via del or slice assignment), and walk will only recurse into the
subdirectories whose names remain in dirnames; this can be used to prune
the search, or to impose a specific order of visiting.  Modifying
dirnames when topdown is false is ineffective, since the directories in
dirnames have already been generated by the time dirnames itself is
generated.
 
By default errors from the os.listdir() call are ignored.  If
optional arg 'onerror' is specified, it should be a function; it
will be called with one argument, an os.error instance.  It can
report the error to continue with the walk, or raise the exception
to abort the walk.  Note that the filename is available as the
filename attribute of the exception object.
 
By default, os.walk does not follow symbolic links to subdirectories on
systems that support them.  In order to get this functionality, set the
optional argument 'followlinks' to true.
 
Caution:  if you pass a relative pathname for top, don't change the
current working directory between resumptions of walk.  walk never
changes the current directory, and assumes that the client doesn't
either.
 
Example:
 
import os
from os.path import join, getsize
for root, dirs, files in os.walk('python/Lib/email'):
    print(root, "consumes", end="")
    print(sum([getsize(join(root, name)) for name in files]), end="")
    print("bytes in", len(files), "non-directory files")
    if 'CVS' in dirs:
        dirs.remove('CVS')  # don't visit CVS directories
write(...)
write(fd, string) -> byteswritten
 
Write a string to a file descriptor.

 
Data
        EX_CANTCREAT = 73
EX_CONFIG = 78
EX_DATAERR = 65
EX_IOERR = 74
EX_NOHOST = 68
EX_NOINPUT = 66
EX_NOPERM = 77
EX_NOUSER = 67
EX_OK = 0
EX_OSERR = 71
EX_OSFILE = 72
EX_PROTOCOL = 76
EX_SOFTWARE = 70
EX_TEMPFAIL = 75
EX_UNAVAILABLE = 69
EX_USAGE = 64
F_OK = 0
NGROUPS_MAX = 65536
O_APPEND = 1024
O_ASYNC = 8192
O_CREAT = 64
O_DIRECT = 16384
O_DIRECTORY = 65536
O_DSYNC = 4096
O_EXCL = 128
O_LARGEFILE = 0
O_NDELAY = 2048
O_NOATIME = 262144
O_NOCTTY = 256
O_NOFOLLOW = 131072
O_NONBLOCK = 2048
O_RDONLY = 0
O_RDWR = 2
O_RSYNC = 4096
O_SYNC = 4096
O_TRUNC = 512
O_WRONLY = 1
R_OK = 4
SEEK_CUR = 1
SEEK_END = 2
SEEK_SET = 0
TMP_MAX = 238328
WCONTINUED = 8
WNOHANG = 1
WUNTRACED = 2
W_OK = 2
X_OK = 1
__all__ = ['altsep', 'curdir', 'pardir', 'sep', 'pathsep', 'linesep', 'defpath', 'name', 'path', 'devnull', 'SEEK_SET', 'SEEK_CUR', 'SEEK_END', 'EX_CANTCREAT', 'EX_CONFIG', 'EX_DATAERR', 'EX_IOERR', 'EX_NOHOST', 'EX_NOINPUT', 'EX_NOPERM', ...]
altsep = None
confstr_names = {'CS_LFS64_CFLAGS': 1004, 'CS_LFS64_LDFLAGS': 1005, 'CS_LFS64_LIBS': 1006, 'CS_LFS64_LINTFLAGS': 1007, 'CS_LFS_CFLAGS': 1000, 'CS_LFS_LDFLAGS': 1001, 'CS_LFS_LIBS': 1002, 'CS_LFS_LINTFLAGS': 1003, 'CS_PATH': 0, 'CS_XBS5_ILP32_OFF32_CFLAGS': 1100, ...}
curdir = '.'
defpath = ':/bin:/usr/bin'
devnull = '/dev/null'
environ = <os._Environ object at 0x7f327c987e50>
linesep = '\n'
name = 'posix'
pardir = '..'
pathconf_names = {'PC_ASYNC_IO': 10, 'PC_CHOWN_RESTRICTED': 6, 'PC_FILESIZEBITS': 13, 'PC_LINK_MAX': 0, 'PC_MAX_CANON': 1, 'PC_MAX_INPUT': 2, 'PC_NAME_MAX': 3, 'PC_NO_TRUNC': 7, 'PC_PATH_MAX': 4, 'PC_PIPE_BUF': 5, ...}
pathsep = ':'
sep = '/'
sysconf_names = {'SC_2_CHAR_TERM': 95, 'SC_2_C_BIND': 47, 'SC_2_C_DEV': 48, 'SC_2_C_VERSION': 96, 'SC_2_FORT_DEV': 49, 'SC_2_FORT_RUN': 50, 'SC_2_LOCALEDEF': 52, 'SC_2_SW_DEV': 51, 'SC_2_UPE': 97, 'SC_2_VERSION': 46, ...}