1430 lines
47 KiB
Go
1430 lines
47 KiB
Go
package os
|
|
|
|
import (
|
|
_ "unsafe"
|
|
|
|
"github.com/goplus/llgo/py"
|
|
)
|
|
|
|
const LLGoPackage = "py.os"
|
|
|
|
// Perform a stat system call on the given path.
|
|
//
|
|
// path
|
|
// Path to be examined; can be string, bytes, a path-like object or
|
|
// open-file-descriptor int.
|
|
// dir_fd
|
|
// If not None, it should be a file descriptor open to a directory,
|
|
// and path should be a relative string; path will then be relative to
|
|
// that directory.
|
|
// follow_symlinks
|
|
// If False, and the last element of the path is a symbolic link,
|
|
// stat will examine the symbolic link itself instead of the file
|
|
// the link points to.
|
|
//
|
|
// dir_fd and follow_symlinks may not be implemented
|
|
//
|
|
// on your platform. If they are unavailable, using them will raise a
|
|
// NotImplementedError.
|
|
//
|
|
// It's an error to use dir_fd or follow_symlinks when specifying path as
|
|
//
|
|
// an open file descriptor.
|
|
//
|
|
//go:linkname Stat py.stat
|
|
func Stat(path *py.Object) *py.Object
|
|
|
|
// Use the real uid/gid to test for access to a path.
|
|
//
|
|
// path
|
|
// Path to be tested; can be string, bytes, or a path-like object.
|
|
// mode
|
|
// Operating-system mode bitfield. Can be F_OK to test existence,
|
|
// or the inclusive-OR of R_OK, W_OK, and X_OK.
|
|
// dir_fd
|
|
// If not None, it should be a file descriptor open to a directory,
|
|
// and path should be relative; path will then be relative to that
|
|
// directory.
|
|
// effective_ids
|
|
// If True, access will use the effective uid/gid instead of
|
|
// the real uid/gid.
|
|
// follow_symlinks
|
|
// If False, and the last element of the path is a symbolic link,
|
|
// access will examine the symbolic link itself instead of the file
|
|
// the link points to.
|
|
//
|
|
// dir_fd, effective_ids, and follow_symlinks may not be implemented
|
|
//
|
|
// on your platform. If they are unavailable, using them will raise a
|
|
// NotImplementedError.
|
|
//
|
|
// 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.
|
|
//
|
|
//go:linkname Access py.access
|
|
func Access(path *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Return the name of the terminal device connected to 'fd'.
|
|
//
|
|
// fd
|
|
// Integer file descriptor handle.
|
|
//
|
|
//go:linkname Ttyname py.ttyname
|
|
func Ttyname(fd *py.Object) *py.Object
|
|
|
|
// Change the current working directory to the specified path.
|
|
//
|
|
// path may always be specified as a string.
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
//
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
//
|
|
//go:linkname Chdir py.chdir
|
|
func Chdir(path *py.Object) *py.Object
|
|
|
|
// Set file flags.
|
|
//
|
|
// If follow_symlinks is False, and the last element of the path is a symbolic
|
|
//
|
|
// link, chflags will change flags on the symbolic link itself instead of the
|
|
// file the link points to.
|
|
//
|
|
// follow_symlinks may not be implemented on your platform. If it is
|
|
// unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Chflags py.chflags
|
|
func Chflags(path *py.Object, flags *py.Object, followSymlinks *py.Object) *py.Object
|
|
|
|
// Change the access permissions of a file.
|
|
//
|
|
// path
|
|
// Path to be modified. May always be specified as a str, bytes, or a path-like object.
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
// mode
|
|
// Operating-system mode bitfield.
|
|
// Be careful when using number literals for *mode*. The conventional UNIX notation for
|
|
// numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in
|
|
// Python.
|
|
// dir_fd
|
|
// If not None, it should be a file descriptor open to a directory,
|
|
// and path should be relative; path will then be relative to that
|
|
// directory.
|
|
// follow_symlinks
|
|
// If False, and the last element of the path is a symbolic link,
|
|
// chmod will modify the symbolic link itself instead of the file
|
|
// the link points to.
|
|
//
|
|
// It is an error to use dir_fd or follow_symlinks when specifying path as
|
|
//
|
|
// an open file descriptor.
|
|
//
|
|
// dir_fd and follow_symlinks may not be implemented on your platform.
|
|
//
|
|
// If they are unavailable, using them will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Chmod py.chmod
|
|
func Chmod(path *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Change the access permissions of the file given by file descriptor fd.
|
|
//
|
|
// fd
|
|
// The file descriptor of the file to be modified.
|
|
// mode
|
|
// Operating-system mode bitfield.
|
|
// Be careful when using number literals for *mode*. The conventional UNIX notation for
|
|
// numeric modes uses an octal base, which needs to be indicated with a ``0o`` prefix in
|
|
// Python.
|
|
//
|
|
// Equivalent to os.chmod(fd, mode).
|
|
//
|
|
//go:linkname Fchmod py.fchmod
|
|
func Fchmod(fd *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Change the access permissions of a file, without following symbolic links.
|
|
//
|
|
// If path is a symlink, this affects the link itself rather than the target.
|
|
// Equivalent to chmod(path, mode, follow_symlinks=False)."
|
|
//
|
|
//go:linkname Lchmod py.lchmod
|
|
func Lchmod(path *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Change the owner and group id of path to the numeric uid and gid.\
|
|
//
|
|
// path
|
|
// Path to be examined; can be string, bytes, a path-like object, or open-file-descriptor int.
|
|
// dir_fd
|
|
// If not None, it should be a file descriptor open to a directory,
|
|
// and path should be relative; path will then be relative to that
|
|
// directory.
|
|
// follow_symlinks
|
|
// If False, and the last element of the path is a symbolic link,
|
|
// stat will examine the symbolic link itself instead of the file
|
|
// the link points to.
|
|
//
|
|
// path may always be specified as a string.
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
//
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// If follow_symlinks is False, and the last element of the path is a symbolic
|
|
//
|
|
// link, chown will modify the symbolic link itself instead of the file the
|
|
// link points to.
|
|
//
|
|
// It is an error to use dir_fd or follow_symlinks when specifying path as
|
|
//
|
|
// an open file descriptor.
|
|
//
|
|
// dir_fd and follow_symlinks may not be implemented on your platform.
|
|
//
|
|
// If they are unavailable, using them will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Chown py.chown
|
|
func Chown(path *py.Object, uid *py.Object, gid *py.Object) *py.Object
|
|
|
|
// Change the owner and group id of the file specified by file descriptor.
|
|
//
|
|
// Equivalent to os.chown(fd, uid, gid).
|
|
//
|
|
//go:linkname Fchown py.fchown
|
|
func Fchown(fd *py.Object, uid *py.Object, gid *py.Object) *py.Object
|
|
|
|
// Change the owner and group id of path to the numeric uid and gid.
|
|
//
|
|
// This function will not follow symbolic links.
|
|
// Equivalent to os.chown(path, uid, gid, follow_symlinks=False).
|
|
//
|
|
//go:linkname Lchown py.lchown
|
|
func Lchown(path *py.Object, uid *py.Object, gid *py.Object) *py.Object
|
|
|
|
// Set file flags.
|
|
//
|
|
// This function will not follow symbolic links.
|
|
// Equivalent to chflags(path, flags, follow_symlinks=False).
|
|
//
|
|
//go:linkname Lchflags py.lchflags
|
|
func Lchflags(path *py.Object, flags *py.Object) *py.Object
|
|
|
|
// Change root directory to path.
|
|
//
|
|
//go:linkname Chroot py.chroot
|
|
func Chroot(path *py.Object) *py.Object
|
|
|
|
// Return the name of the controlling terminal for this process.
|
|
//
|
|
//go:linkname Ctermid py.ctermid
|
|
func Ctermid() *py.Object
|
|
|
|
// Return a unicode string representing the current working directory.
|
|
//
|
|
//go:linkname Getcwd py.getcwd
|
|
func Getcwd() *py.Object
|
|
|
|
// Return a bytes string representing the current working directory.
|
|
//
|
|
//go:linkname Getcwdb py.getcwdb
|
|
func Getcwdb() *py.Object
|
|
|
|
// Create a hard link to a file.
|
|
//
|
|
// If either src_dir_fd or dst_dir_fd is not None, it should be a file
|
|
//
|
|
// descriptor open to a directory, and the respective path string (src or dst)
|
|
// should be relative; the path will then be relative to that directory.
|
|
//
|
|
// If follow_symlinks is False, and the last element of src is a symbolic
|
|
//
|
|
// link, link will create a link to the symbolic link itself instead of the
|
|
// file the link points to.
|
|
//
|
|
// src_dir_fd, dst_dir_fd, and follow_symlinks may not be implemented on your
|
|
//
|
|
// platform. If they are unavailable, using them will raise a
|
|
// NotImplementedError.
|
|
//
|
|
//go:linkname Link py.link
|
|
func Link(src *py.Object, dst *py.Object) *py.Object
|
|
|
|
// Return a list containing the names of the files in the directory.
|
|
//
|
|
// path can be specified as either str, bytes, or a path-like object. If path is bytes,
|
|
//
|
|
// the filenames returned will also be bytes; in all other circumstances
|
|
// the filenames returned will be str.
|
|
//
|
|
// If path is None, uses the path='.'.
|
|
//
|
|
// On some platforms, path may also be specified as an open file descriptor;\
|
|
// the file descriptor must refer to a directory.
|
|
// If this functionality is unavailable, using it raises NotImplementedError.
|
|
//
|
|
// The list is in arbitrary order. It does not include the special
|
|
// entries '.' and '..' even if they are present in the directory.
|
|
//
|
|
//go:linkname Listdir py.listdir
|
|
func Listdir(path *py.Object) *py.Object
|
|
|
|
// Perform a stat system call on the given path, without following symbolic links.
|
|
//
|
|
// Like stat(), but do not follow symbolic links.
|
|
// Equivalent to stat(path, follow_symlinks=False).
|
|
//
|
|
//go:linkname Lstat py.lstat
|
|
func Lstat(path *py.Object) *py.Object
|
|
|
|
// Create a directory.
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
// The mode argument is ignored on Windows. Where it is used, the current umask
|
|
// value is first masked out.
|
|
//
|
|
//go:linkname Mkdir py.mkdir
|
|
func Mkdir(path *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Add increment to the priority of process and return the new priority.
|
|
//
|
|
//go:linkname Nice py.nice
|
|
func Nice(increment *py.Object) *py.Object
|
|
|
|
// Return program scheduling priority.
|
|
//
|
|
//go:linkname Getpriority py.getpriority
|
|
func Getpriority(which *py.Object, who *py.Object) *py.Object
|
|
|
|
// Set program scheduling priority.
|
|
//
|
|
//go:linkname Setpriority py.setpriority
|
|
func Setpriority(which *py.Object, who *py.Object, priority *py.Object) *py.Object
|
|
|
|
// Remove a directory.
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Rmdir py.rmdir
|
|
func Rmdir(path *py.Object) *py.Object
|
|
|
|
// Create a symbolic link pointing to src named dst.
|
|
//
|
|
// target_is_directory is required on Windows if the target is to be
|
|
//
|
|
// interpreted as a directory. (On Windows, symlink requires
|
|
// Windows 6.0 or greater, and raises a NotImplementedError otherwise.)
|
|
// target_is_directory is ignored on non-Windows platforms.
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Symlink py.symlink
|
|
func Symlink(src *py.Object, dst *py.Object, targetIsDirectory *py.Object) *py.Object
|
|
|
|
// Execute the command in a subshell.
|
|
//
|
|
//go:linkname System py.system
|
|
func System(command *py.Object) *py.Object
|
|
|
|
// Set the current numeric umask and return the previous umask.
|
|
//
|
|
//go:linkname Umask py.umask
|
|
func Umask(mask *py.Object) *py.Object
|
|
|
|
// Return an object identifying the current operating system.
|
|
//
|
|
// The object behaves like a named tuple with the following fields:
|
|
//
|
|
// (sysname, nodename, release, version, machine)
|
|
//
|
|
//go:linkname Uname py.uname
|
|
func Uname() *py.Object
|
|
|
|
// Remove a file (same as remove()).
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Unlink py.unlink
|
|
func Unlink(path *py.Object) *py.Object
|
|
|
|
// Remove a file (same as unlink()).
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Remove py.remove
|
|
func Remove(path *py.Object) *py.Object
|
|
|
|
// Return a collection containing process timing information.
|
|
//
|
|
// The object returned behaves like a named tuple with these fields:
|
|
//
|
|
// (utime, stime, cutime, cstime, elapsed_time)
|
|
//
|
|
// All fields are floating point numbers.
|
|
//
|
|
//go:linkname Times py.times
|
|
func Times() *py.Object
|
|
|
|
// Execute an executable path with arguments, replacing current process.
|
|
//
|
|
// path
|
|
// Path of executable file.
|
|
// argv
|
|
// Tuple or list of strings.
|
|
//
|
|
//go:linkname Execv py.execv
|
|
func Execv(path *py.Object, argv *py.Object) *py.Object
|
|
|
|
// Execute an executable path with arguments, replacing current process.
|
|
//
|
|
// path
|
|
// Path of executable file.
|
|
// argv
|
|
// Tuple or list of strings.
|
|
// env
|
|
// Dictionary of strings mapping to strings.
|
|
//
|
|
//go:linkname Execve py.execve
|
|
func Execve(path *py.Object, argv *py.Object, env *py.Object) *py.Object
|
|
|
|
// Fork a child process.
|
|
//
|
|
// Return 0 to child process and PID of child to parent process.
|
|
//
|
|
//go:linkname Fork py.fork
|
|
func Fork() *py.Object
|
|
|
|
// Get the minimum scheduling priority for policy.
|
|
//
|
|
//go:linkname SchedGetPriorityMin py.sched_get_priority_min
|
|
func SchedGetPriorityMin(policy *py.Object) *py.Object
|
|
|
|
// Voluntarily relinquish the CPU.
|
|
//
|
|
//go:linkname SchedYield py.sched_yield
|
|
func SchedYield() *py.Object
|
|
|
|
// Open a pseudo-terminal.
|
|
//
|
|
// Return a tuple of (master_fd, slave_fd) containing open file descriptors
|
|
// for both the master and slave ends.
|
|
//
|
|
//go:linkname Openpty py.openpty
|
|
func Openpty() *py.Object
|
|
|
|
// Prepare the tty of which fd is a file descriptor for a new login session.
|
|
//
|
|
// Make the calling process a session leader; make the tty the
|
|
// controlling tty, the stdin, the stdout, and the stderr of the
|
|
// calling process; close fd.
|
|
//
|
|
//go:linkname LoginTty py.login_tty
|
|
func LoginTty(fd *py.Object) *py.Object
|
|
|
|
// Fork a new process with a new pseudo-terminal as controlling tty.
|
|
//
|
|
// Returns a tuple of (pid, master_fd).
|
|
// Like fork(), return pid of 0 to the child process,
|
|
// and pid of child to the parent process.
|
|
// To both, return fd of newly opened pseudo-terminal.
|
|
//
|
|
//go:linkname Forkpty py.forkpty
|
|
func Forkpty() *py.Object
|
|
|
|
// Return the current process's effective group id.
|
|
//
|
|
//go:linkname Getegid py.getegid
|
|
func Getegid() *py.Object
|
|
|
|
// Return the current process's effective user id.
|
|
//
|
|
//go:linkname Geteuid py.geteuid
|
|
func Geteuid() *py.Object
|
|
|
|
// Return the current process's group id.
|
|
//
|
|
//go:linkname Getgid py.getgid
|
|
func Getgid() *py.Object
|
|
|
|
// Returns a list of groups to which a user belongs.
|
|
//
|
|
// user
|
|
// username to lookup
|
|
// group
|
|
// base group id of the user
|
|
//
|
|
//go:linkname Getgrouplist py.getgrouplist
|
|
func Getgrouplist(user *py.Object, group *py.Object) *py.Object
|
|
|
|
// Return list of supplemental group IDs for the process.
|
|
//
|
|
//go:linkname Getgroups py.getgroups
|
|
func Getgroups() *py.Object
|
|
|
|
// Return the current process id.
|
|
//
|
|
//go:linkname Getpid py.getpid
|
|
func Getpid() *py.Object
|
|
|
|
// Return the current process group id.
|
|
//
|
|
//go:linkname Getpgrp py.getpgrp
|
|
func Getpgrp() *py.Object
|
|
|
|
// Return the parent's process id.
|
|
//
|
|
// If the parent process has already exited, Windows machines will still
|
|
// return its id; others systems will return the id of the 'init' process (1).
|
|
//
|
|
//go:linkname Getppid py.getppid
|
|
func Getppid() *py.Object
|
|
|
|
// Return the current process's user id.
|
|
//
|
|
//go:linkname Getuid py.getuid
|
|
func Getuid() *py.Object
|
|
|
|
// Return the actual login name.
|
|
//
|
|
//go:linkname Getlogin py.getlogin
|
|
func Getlogin() *py.Object
|
|
|
|
// Kill a process with a signal.
|
|
//
|
|
//go:linkname Kill py.kill
|
|
func Kill(pid *py.Object, signal *py.Object) *py.Object
|
|
|
|
// Kill a process group with a signal.
|
|
//
|
|
//go:linkname Killpg py.killpg
|
|
func Killpg(pgid *py.Object, signal *py.Object) *py.Object
|
|
|
|
// Set the current process's user id.
|
|
//
|
|
//go:linkname Setuid py.setuid
|
|
func Setuid(uid *py.Object) *py.Object
|
|
|
|
// Set the current process's effective user id.
|
|
//
|
|
//go:linkname Seteuid py.seteuid
|
|
func Seteuid(euid *py.Object) *py.Object
|
|
|
|
// Set the current process's real and effective user ids.
|
|
//
|
|
//go:linkname Setreuid py.setreuid
|
|
func Setreuid(ruid *py.Object, euid *py.Object) *py.Object
|
|
|
|
// Set the current process's group id.
|
|
//
|
|
//go:linkname Setgid py.setgid
|
|
func Setgid(gid *py.Object) *py.Object
|
|
|
|
// Set the current process's effective group id.
|
|
//
|
|
//go:linkname Setegid py.setegid
|
|
func Setegid(egid *py.Object) *py.Object
|
|
|
|
// Set the current process's real and effective group ids.
|
|
//
|
|
//go:linkname Setregid py.setregid
|
|
func Setregid(rgid *py.Object, egid *py.Object) *py.Object
|
|
|
|
// Set the groups of the current process to list.
|
|
//
|
|
//go:linkname Setgroups py.setgroups
|
|
func Setgroups(groups *py.Object) *py.Object
|
|
|
|
// Initialize the group access list.
|
|
//
|
|
// Call the system initgroups() to initialize the group access list with all of
|
|
// the groups of which the specified username is a member, plus the specified
|
|
// group id.
|
|
//
|
|
//go:linkname Initgroups py.initgroups
|
|
func Initgroups(username *py.Object, gid *py.Object) *py.Object
|
|
|
|
// Call the system call getpgid(), and return the result.
|
|
//
|
|
//go:linkname Getpgid py.getpgid
|
|
func Getpgid(pid *py.Object) *py.Object
|
|
|
|
// Make the current process the leader of its process group.
|
|
//
|
|
//go:linkname Setpgrp py.setpgrp
|
|
func Setpgrp() *py.Object
|
|
|
|
// Wait for completion of a child process.
|
|
//
|
|
// Returns a tuple of information about the child process:
|
|
//
|
|
// (pid, status)
|
|
//
|
|
//go:linkname Wait py.wait
|
|
func Wait() *py.Object
|
|
|
|
// Wait for completion of a child process.
|
|
//
|
|
// Returns a tuple of information about the child process:
|
|
//
|
|
// (pid, status, rusage)
|
|
//
|
|
//go:linkname Wait3 py.wait3
|
|
func Wait3(options *py.Object) *py.Object
|
|
|
|
// Wait for completion of a specific child process.
|
|
//
|
|
// Returns a tuple of information about the child process:
|
|
//
|
|
// (pid, status, rusage)
|
|
//
|
|
//go:linkname Wait4 py.wait4
|
|
func Wait4(pid *py.Object, options *py.Object) *py.Object
|
|
|
|
// Wait for completion of a given child process.
|
|
//
|
|
// Returns a tuple of information regarding the child process:
|
|
//
|
|
// (pid, status)
|
|
//
|
|
// The options argument is ignored on Windows.
|
|
//
|
|
//go:linkname Waitpid py.waitpid
|
|
func Waitpid(pid *py.Object, options *py.Object) *py.Object
|
|
|
|
// Call the system call getsid(pid) and return the result.
|
|
//
|
|
//go:linkname Getsid py.getsid
|
|
func Getsid(pid *py.Object) *py.Object
|
|
|
|
// Call the system call setsid().
|
|
//
|
|
//go:linkname Setsid py.setsid
|
|
func Setsid() *py.Object
|
|
|
|
// Call the system call setpgid(pid, pgrp).
|
|
//
|
|
//go:linkname Setpgid py.setpgid
|
|
func Setpgid(pid *py.Object, pgrp *py.Object) *py.Object
|
|
|
|
// Return the process group associated with the terminal specified by fd.
|
|
//
|
|
//go:linkname Tcgetpgrp py.tcgetpgrp
|
|
func Tcgetpgrp(fd *py.Object) *py.Object
|
|
|
|
// Set the process group associated with the terminal specified by fd.
|
|
//
|
|
//go:linkname Tcsetpgrp py.tcsetpgrp
|
|
func Tcsetpgrp(fd *py.Object, pgid *py.Object) *py.Object
|
|
|
|
// Open a file for low level IO. Returns a file descriptor (integer).
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Open py.open
|
|
func Open(path *py.Object, flags *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Close a file descriptor.
|
|
//
|
|
//go:linkname Close py.close
|
|
func Close(fd *py.Object) *py.Object
|
|
|
|
// Closes all file descriptors in [fd_low, fd_high), ignoring errors.
|
|
//
|
|
//go:linkname Closerange py.closerange
|
|
func Closerange(fdLow *py.Object, fdHigh *py.Object) *py.Object
|
|
|
|
// Return a string describing the encoding of a terminal's file descriptor.
|
|
//
|
|
// The file descriptor must be attached to a terminal.
|
|
// If the device is not a terminal, return None.
|
|
//
|
|
//go:linkname DeviceEncoding py.device_encoding
|
|
func DeviceEncoding(fd *py.Object) *py.Object
|
|
|
|
// Return a duplicate of a file descriptor.
|
|
//
|
|
//go:linkname Dup py.dup
|
|
func Dup(fd *py.Object) *py.Object
|
|
|
|
// Duplicate file descriptor.
|
|
//
|
|
//go:linkname Dup2 py.dup2
|
|
func Dup2(fd *py.Object, fd2 *py.Object, inheritable *py.Object) *py.Object
|
|
|
|
// Apply, test or remove a POSIX lock on an open file descriptor.
|
|
//
|
|
// fd
|
|
// An open file descriptor.
|
|
// command
|
|
// One of F_LOCK, F_TLOCK, F_ULOCK or F_TEST.
|
|
// length
|
|
// The number of bytes to lock, starting at the current position.
|
|
//
|
|
//go:linkname Lockf py.lockf
|
|
func Lockf(fd *py.Object, command *py.Object, length *py.Object) *py.Object
|
|
|
|
// Set the position of a file descriptor. Return the new position.
|
|
//
|
|
// fd
|
|
// An open file descriptor, as returned by os.open().
|
|
// position
|
|
// Position, interpreted relative to 'whence'.
|
|
// whence
|
|
// The relative position to seek from. Valid values are:
|
|
// - SEEK_SET: seek from the start of the file.
|
|
// - SEEK_CUR: seek from the current file position.
|
|
// - SEEK_END: seek from the end of the file.
|
|
//
|
|
// The return value is the number of bytes relative to the beginning of the file.
|
|
//
|
|
//go:linkname Lseek py.lseek
|
|
func Lseek(fd *py.Object, position *py.Object, whence *py.Object) *py.Object
|
|
|
|
// Read from a file descriptor. Returns a bytes object.
|
|
//
|
|
//go:linkname Read py.read
|
|
func Read(fd *py.Object, length *py.Object) *py.Object
|
|
|
|
// Read from a file descriptor fd into an iterable of buffers.
|
|
//
|
|
// The buffers should be mutable buffers accepting bytes.
|
|
// readv will transfer data into each buffer until it is full
|
|
// and then move on to the next buffer in the sequence to hold
|
|
// the rest of the data.
|
|
//
|
|
// readv returns the total number of bytes read,
|
|
// which may be less than the total capacity of all the buffers.
|
|
//
|
|
//go:linkname Readv py.readv
|
|
func Readv(fd *py.Object, buffers *py.Object) *py.Object
|
|
|
|
// Read a number of bytes from a file descriptor starting at a particular offset.
|
|
//
|
|
// Read length bytes from file descriptor fd, starting at offset bytes from
|
|
// the beginning of the file. The file offset remains unchanged.
|
|
//
|
|
//go:linkname Pread py.pread
|
|
func Pread(fd *py.Object, length *py.Object, offset *py.Object) *py.Object
|
|
|
|
// Reads from a file descriptor into a number of mutable bytes-like objects.
|
|
//
|
|
// Combines the functionality of readv() and pread(). As readv(), it will
|
|
// transfer data into each buffer until it is full and then move on to the next
|
|
// buffer in the sequence to hold the rest of the data. Its fourth argument,
|
|
// specifies the file offset at which the input operation is to be performed. It
|
|
// will return the total number of bytes read (which can be less than the total
|
|
// capacity of all the objects).
|
|
//
|
|
// The flags argument contains a bitwise OR of zero or more of the following flags:
|
|
//
|
|
// - RWF_HIPRI
|
|
// - RWF_NOWAIT
|
|
//
|
|
// Using non-zero flags requires Linux 4.6 or newer.
|
|
//
|
|
//go:linkname Preadv py.preadv
|
|
func Preadv(fd *py.Object, buffers *py.Object, offset *py.Object, flags *py.Object) *py.Object
|
|
|
|
// Write a bytes object to a file descriptor.
|
|
//
|
|
//go:linkname Write py.write
|
|
func Write(fd *py.Object, data *py.Object) *py.Object
|
|
|
|
// Iterate over buffers, and write the contents of each to a file descriptor.
|
|
//
|
|
// Returns the total number of bytes written.
|
|
// buffers must be a sequence of bytes-like objects.
|
|
//
|
|
//go:linkname Writev py.writev
|
|
func Writev(fd *py.Object, buffers *py.Object) *py.Object
|
|
|
|
// Write bytes to a file descriptor starting at a particular offset.
|
|
//
|
|
// Write buffer to fd, starting at offset bytes from the beginning of
|
|
// the file. Returns the number of bytes writte. Does not change the
|
|
// current file offset.
|
|
//
|
|
//go:linkname Pwrite py.pwrite
|
|
func Pwrite(fd *py.Object, buffer *py.Object, offset *py.Object) *py.Object
|
|
|
|
// Writes the contents of bytes-like objects to a file descriptor at a given offset.
|
|
//
|
|
// Combines the functionality of writev() and pwrite(). All buffers must be a sequence
|
|
// of bytes-like objects. Buffers are processed in array order. Entire contents of first
|
|
// buffer is written before proceeding to second, and so on. The operating system may
|
|
// set a limit (sysconf() value SC_IOV_MAX) on the number of buffers that can be used.
|
|
// This function writes the contents of each object to the file descriptor and returns
|
|
// the total number of bytes written.
|
|
//
|
|
// The flags argument contains a bitwise OR of zero or more of the following flags:
|
|
//
|
|
// - RWF_DSYNC
|
|
// - RWF_SYNC
|
|
// - RWF_APPEND
|
|
//
|
|
// Using non-zero flags requires Linux 4.7 or newer.
|
|
//
|
|
//go:linkname Pwritev py.pwritev
|
|
func Pwritev(fd *py.Object, buffers *py.Object, offset *py.Object, flags *py.Object) *py.Object
|
|
|
|
// Copy count bytes from file descriptor in_fd to file descriptor out_fd.
|
|
//
|
|
//go:linkname Sendfile py.sendfile
|
|
func Sendfile(outFd *py.Object, inFd *py.Object, offset *py.Object, count *py.Object, headers *py.Object, trailers *py.Object, flags *py.Object) *py.Object
|
|
|
|
// Perform a stat system call on the given file descriptor.
|
|
//
|
|
// Like stat(), but for an open file descriptor.
|
|
// Equivalent to os.stat(fd).
|
|
//
|
|
//go:linkname Fstat py.fstat
|
|
func Fstat(fd *py.Object) *py.Object
|
|
|
|
// Return True if the fd is connected to a terminal.
|
|
//
|
|
// Return True if the file descriptor is an open file descriptor
|
|
// connected to the slave end of a terminal.
|
|
//
|
|
//go:linkname Isatty py.isatty
|
|
func Isatty(fd *py.Object) *py.Object
|
|
|
|
// Create a pipe.
|
|
//
|
|
// Returns a tuple of two file descriptors:
|
|
//
|
|
// (read_fd, write_fd)
|
|
//
|
|
//go:linkname Pipe py.pipe
|
|
func Pipe() *py.Object
|
|
|
|
// Create a "fifo" (a POSIX named pipe).
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Mkfifo py.mkfifo
|
|
func Mkfifo(path *py.Object, mode *py.Object) *py.Object
|
|
|
|
// Create a node in the file system.
|
|
//
|
|
// Create a node in the file system (file, device special file or named pipe)
|
|
// at path. mode specifies both the permissions to use and the
|
|
// type of node to be created, being combined (bitwise OR) with one of
|
|
// S_IFREG, S_IFCHR, S_IFBLK, and S_IFIFO. If S_IFCHR or S_IFBLK is set on mode,
|
|
// device defines the newly created device special file (probably using
|
|
// os.makedev()). Otherwise device is ignored.
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
//
|
|
// and path should be relative; path will then be relative to that directory.
|
|
//
|
|
// dir_fd may not be implemented on your platform.
|
|
//
|
|
// If it is unavailable, using it will raise a NotImplementedError.
|
|
//
|
|
//go:linkname Mknod py.mknod
|
|
func Mknod(path *py.Object, mode *py.Object, device *py.Object) *py.Object
|
|
|
|
// Extracts a device major number from a raw device number.
|
|
//
|
|
//go:linkname Major py.major
|
|
func Major(device *py.Object) *py.Object
|
|
|
|
// Extracts a device minor number from a raw device number.
|
|
//
|
|
//go:linkname Minor py.minor
|
|
func Minor(device *py.Object) *py.Object
|
|
|
|
// Composes a raw device number from the major and minor device numbers.
|
|
//
|
|
//go:linkname Makedev py.makedev
|
|
func Makedev(major *py.Object, minor *py.Object) *py.Object
|
|
|
|
// Truncate a file, specified by file descriptor, to a specific length.
|
|
//
|
|
//go:linkname Ftruncate py.ftruncate
|
|
func Ftruncate(fd *py.Object, length *py.Object) *py.Object
|
|
|
|
// Truncate a file, specified by path, to a specific length.
|
|
//
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
//
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
//
|
|
//go:linkname Truncate py.truncate
|
|
func Truncate(path *py.Object, length *py.Object) *py.Object
|
|
|
|
// Change or add an environment variable.
|
|
//
|
|
//go:linkname Putenv py.putenv
|
|
func Putenv(name *py.Object, value *py.Object) *py.Object
|
|
|
|
// Delete an environment variable.
|
|
//
|
|
//go:linkname Unsetenv py.unsetenv
|
|
func Unsetenv(name *py.Object) *py.Object
|
|
|
|
// Translate an error code to a message string.
|
|
//
|
|
//go:linkname Strerror py.strerror
|
|
func Strerror(code *py.Object) *py.Object
|
|
|
|
// Change to the directory of the given file descriptor.
|
|
//
|
|
// fd must be opened on a directory, not a file.
|
|
// Equivalent to os.chdir(fd).
|
|
//
|
|
//go:linkname Fchdir py.fchdir
|
|
func Fchdir(fd *py.Object) *py.Object
|
|
|
|
// Force write of fd to disk.
|
|
//
|
|
//go:linkname Fsync py.fsync
|
|
func Fsync(fd *py.Object) *py.Object
|
|
|
|
// Force write of everything to disk.
|
|
//
|
|
//go:linkname Sync py.sync
|
|
func Sync() *py.Object
|
|
|
|
// Return True if the process returning status was dumped to a core file.
|
|
//
|
|
//go:linkname WCOREDUMP py.WCOREDUMP
|
|
func WCOREDUMP(status *py.Object) *py.Object
|
|
|
|
// Return True if a particular process was continued from a job control stop.
|
|
//
|
|
// Return True if the process returning status was continued from a
|
|
// job control stop.
|
|
//
|
|
//go:linkname WIFCONTINUED py.WIFCONTINUED
|
|
func WIFCONTINUED(status *py.Object) *py.Object
|
|
|
|
// Return True if the process returning status was stopped.
|
|
//
|
|
//go:linkname WIFSTOPPED py.WIFSTOPPED
|
|
func WIFSTOPPED(status *py.Object) *py.Object
|
|
|
|
// Return True if the process returning status was terminated by a signal.
|
|
//
|
|
//go:linkname WIFSIGNALED py.WIFSIGNALED
|
|
func WIFSIGNALED(status *py.Object) *py.Object
|
|
|
|
// Return True if the process returning status exited via the exit() system call.
|
|
//
|
|
//go:linkname WIFEXITED py.WIFEXITED
|
|
func WIFEXITED(status *py.Object) *py.Object
|
|
|
|
// Return the process return code from status.
|
|
//
|
|
//go:linkname WEXITSTATUS py.WEXITSTATUS
|
|
func WEXITSTATUS(status *py.Object) *py.Object
|
|
|
|
// Return the signal that terminated the process that provided the status value.
|
|
//
|
|
//go:linkname WTERMSIG py.WTERMSIG
|
|
func WTERMSIG(status *py.Object) *py.Object
|
|
|
|
// Return the signal that stopped the process that provided the status value.
|
|
//
|
|
//go:linkname WSTOPSIG py.WSTOPSIG
|
|
func WSTOPSIG(status *py.Object) *py.Object
|
|
|
|
// Perform an fstatvfs system call on the given fd.
|
|
//
|
|
// Equivalent to statvfs(fd).
|
|
//
|
|
//go:linkname Fstatvfs py.fstatvfs
|
|
func Fstatvfs(fd *py.Object) *py.Object
|
|
|
|
// Perform a statvfs system call on the given path.
|
|
//
|
|
// path may always be specified as a string.
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
//
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
//
|
|
//go:linkname Statvfs py.statvfs
|
|
func Statvfs(path *py.Object) *py.Object
|
|
|
|
// Return a string-valued system configuration variable.
|
|
//
|
|
//go:linkname Confstr py.confstr
|
|
func Confstr(name *py.Object) *py.Object
|
|
|
|
// Return an integer-valued system configuration variable.
|
|
//
|
|
//go:linkname Sysconf py.sysconf
|
|
func Sysconf(name *py.Object) *py.Object
|
|
|
|
// Return the configuration limit name for the file descriptor fd.
|
|
//
|
|
// If there is no limit, return -1.
|
|
//
|
|
//go:linkname Fpathconf py.fpathconf
|
|
func Fpathconf(fd *py.Object, name *py.Object) *py.Object
|
|
|
|
// Return the configuration limit name for the file or directory path.
|
|
//
|
|
// If there is no limit, return -1.
|
|
// On some platforms, path may also be specified as an open file descriptor.
|
|
//
|
|
// If this functionality is unavailable, using it raises an exception.
|
|
//
|
|
//go:linkname Pathconf py.pathconf
|
|
func Pathconf(path *py.Object, name *py.Object) *py.Object
|
|
|
|
// Abort the interpreter immediately.
|
|
//
|
|
// This function 'dumps core' or otherwise fails in the hardest way possible
|
|
// on the hosting operating system. This function never returns.
|
|
//
|
|
//go:linkname Abort py.abort
|
|
func Abort() *py.Object
|
|
|
|
// Return average recent system load information.
|
|
//
|
|
// Return the number of processes in the system run queue averaged over
|
|
// the last 1, 5, and 15 minutes as a tuple of three floats.
|
|
// Raises OSError if the load average was unobtainable.
|
|
//
|
|
//go:linkname Getloadavg py.getloadavg
|
|
func Getloadavg() *py.Object
|
|
|
|
// Return a bytes object containing random bytes suitable for cryptographic use.
|
|
//
|
|
//go:linkname Urandom py.urandom
|
|
func Urandom(size *py.Object) *py.Object
|
|
|
|
// Return the number of CPUs in the system; return None if indeterminable.
|
|
//
|
|
// This number is not equivalent to the number of CPUs the current process can
|
|
// use. The number of usable CPUs can be obtained with
|
|
// “len(os.sched_getaffinity(0))“
|
|
//
|
|
//go:linkname CpuCount py.cpu_count
|
|
func CpuCount() *py.Object
|
|
|
|
// Get the close-on-exe flag of the specified file descriptor.
|
|
//
|
|
//go:linkname GetInheritable py.get_inheritable
|
|
func GetInheritable(fd *py.Object) *py.Object
|
|
|
|
// Set the inheritable flag of the specified file descriptor.
|
|
//
|
|
//go:linkname SetInheritable py.set_inheritable
|
|
func SetInheritable(fd *py.Object, inheritable *py.Object) *py.Object
|
|
|
|
// Get the blocking mode of the file descriptor.
|
|
//
|
|
// Return False if the O_NONBLOCK flag is set, True if the flag is cleared.
|
|
//
|
|
//go:linkname GetBlocking py.get_blocking
|
|
func GetBlocking(fd *py.Object) *py.Object
|
|
|
|
// Set the blocking mode of the specified file descriptor.
|
|
//
|
|
// Set the O_NONBLOCK flag if blocking is False,
|
|
// clear the O_NONBLOCK flag otherwise.
|
|
//
|
|
//go:linkname SetBlocking py.set_blocking
|
|
func SetBlocking(fd *py.Object, blocking *py.Object) *py.Object
|
|
|
|
// Return an iterator of DirEntry objects for given path.
|
|
//
|
|
// path can be specified as either str, bytes, or a path-like object. If path
|
|
// is bytes, the names of yielded DirEntry objects will also be bytes; in
|
|
// all other circumstances they will be str.
|
|
//
|
|
// If path is None, uses the path='.'.
|
|
//
|
|
//go:linkname Scandir py.scandir
|
|
func Scandir(path *py.Object) *py.Object
|
|
|
|
// Return the file system path representation of the object.
|
|
//
|
|
// If the object is str or bytes, then allow it to pass through as-is. If the
|
|
// object defines __fspath__(), then return the result of that method. All other
|
|
// types raise a TypeError.
|
|
//
|
|
//go:linkname Fspath py.fspath
|
|
func Fspath(path *py.Object) *py.Object
|
|
|
|
// Convert a wait status to an exit code.
|
|
//
|
|
// On Unix:
|
|
//
|
|
// * If WIFEXITED(status) is true, return WEXITSTATUS(status).
|
|
// * If WIFSIGNALED(status) is true, return -WTERMSIG(status).
|
|
// * Otherwise, raise a ValueError.
|
|
//
|
|
// On Windows, return status shifted right by 8 bits.
|
|
//
|
|
// On Unix, if the process is being traced or if waitpid() was called with
|
|
// WUNTRACED option, the caller must first check if WIFSTOPPED(status) is true.
|
|
// This function must not be called if WIFSTOPPED(status) is true.
|
|
//
|
|
//go:linkname WaitstatusToExitcode py.waitstatus_to_exitcode
|
|
func WaitstatusToExitcode(status *py.Object) *py.Object
|
|
|
|
// makedirs(name [, mode=0o777][, exist_ok=False])
|
|
//
|
|
// Super-mkdir; create a leaf directory and all intermediate ones. Works like
|
|
// mkdir, except that any intermediate path segment (not just the rightmost)
|
|
// will be created if it does not exist. If the target directory already
|
|
// exists, raise an OSError if exist_ok is False. Otherwise no exception is
|
|
// raised. This is recursive.
|
|
//
|
|
//go:linkname Makedirs py.makedirs
|
|
func Makedirs(name *py.Object, mode *py.Object, existOk *py.Object) *py.Object
|
|
|
|
// removedirs(name)
|
|
//
|
|
// Super-rmdir; remove a leaf directory and all empty intermediate
|
|
// ones. Works like rmdir except that, if the leaf directory is
|
|
// successfully removed, directories corresponding to rightmost path
|
|
// segments will be pruned away until either the whole path is
|
|
// consumed or an error occurs. Errors during this latter phase are
|
|
// ignored -- they generally mean that a directory was not empty.
|
|
//
|
|
//go:linkname Removedirs py.removedirs
|
|
func Removedirs(name *py.Object) *py.Object
|
|
|
|
// renames(old, new)
|
|
//
|
|
// Super-rename; create directories as necessary and delete any left
|
|
// empty. Works like rename, except creation of any intermediate
|
|
// directories needed to make the new pathname good is attempted
|
|
// first. After the rename, directories corresponding to rightmost
|
|
// path segments of the old name will be pruned until either the
|
|
// whole path is consumed or a nonempty directory is found.
|
|
//
|
|
// Note: this function can fail with the new directory structure made
|
|
// if you lack permissions needed to unlink the leaf directory or
|
|
// file.
|
|
//
|
|
//go:linkname Renames py.renames
|
|
func Renames(old *py.Object, new *py.Object) *py.Object
|
|
|
|
// 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 (including symlinks to directories,
|
|
// and 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 has no effect on the behavior of os.walk(), since the
|
|
// directories in dirnames have already been generated by the time dirnames
|
|
// itself is generated. No matter the value of topdown, the list of
|
|
// subdirectories is retrieved before the tuples for the directory and its
|
|
// subdirectories are generated.
|
|
//
|
|
// By default errors from the os.scandir() call are ignored. If
|
|
// optional arg 'onerror' is specified, it should be a function; it
|
|
// will be called with one argument, an OSError 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 ")
|
|
// 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
|
|
//
|
|
//go:linkname Walk py.walk
|
|
func Walk(top *py.Object, topdown *py.Object, onerror *py.Object, followlinks *py.Object) *py.Object
|
|
|
|
// Directory tree generator.
|
|
//
|
|
// This behaves exactly like walk(), except that it yields a 4-tuple
|
|
//
|
|
// dirpath, dirnames, filenames, dirfd
|
|
//
|
|
// `dirpath`, `dirnames` and `filenames` are identical to walk() output,
|
|
// and `dirfd` is a file descriptor referring to the directory `dirpath`.
|
|
//
|
|
// The advantage of fwalk() over walk() is that it's safe against symlink
|
|
// races (when follow_symlinks is False).
|
|
//
|
|
// If dir_fd is not None, it should be a file descriptor open to a directory,
|
|
// and top should be relative; top will then be relative to that directory.
|
|
// (dir_fd is always supported for fwalk.)
|
|
//
|
|
// Caution:
|
|
// Since fwalk() yields file descriptors, those are only valid until the
|
|
// next iteration step, so you should dup() them if you want to keep them
|
|
// for a longer period.
|
|
//
|
|
// Example:
|
|
//
|
|
// import os
|
|
// for root, dirs, files, rootfd in os.fwalk('python/Lib/email'):
|
|
// print(root, "consumes", end="")
|
|
// print(sum(os.stat(name, dir_fd=rootfd).st_size 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
|
|
//
|
|
//go:linkname Fwalk py.fwalk
|
|
func Fwalk(top *py.Object, topdown *py.Object, onerror *py.Object) *py.Object
|
|
|
|
// execl(file, *args)
|
|
//
|
|
// Execute the executable file with argument list args, replacing the
|
|
// current process.
|
|
//
|
|
//go:linkname Execl py.execl
|
|
func Execl(file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// execle(file, *args, env)
|
|
//
|
|
// Execute the executable file with argument list args and
|
|
// environment env, replacing the current process.
|
|
//
|
|
//go:linkname Execle py.execle
|
|
func Execle(file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// execlp(file, *args)
|
|
//
|
|
// Execute the executable file (which is searched for along $PATH)
|
|
// with argument list args, replacing the current process.
|
|
//
|
|
//go:linkname Execlp py.execlp
|
|
func Execlp(file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Execlpe py.execlpe
|
|
func Execlpe(file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// execvp(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.
|
|
//
|
|
//go:linkname Execvp py.execvp
|
|
func Execvp(file *py.Object, args *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Execvpe py.execvpe
|
|
func Execvpe(file *py.Object, args *py.Object, env *py.Object) *py.Object
|
|
|
|
// Returns the sequence of directories that will be searched for the
|
|
//
|
|
// named executable (similar to a shell) when launching a process.
|
|
//
|
|
// *env* must be an environment variable dict or None. If *env* is None,
|
|
// os.environ will be used.
|
|
//
|
|
//go:linkname GetExecPath py.get_exec_path
|
|
func GetExecPath(env *py.Object) *py.Object
|
|
|
|
// Get an environment variable, return None if it doesn't exist.
|
|
//
|
|
// The optional second argument can specify an alternate default.
|
|
// key, default and the result are str.
|
|
//
|
|
//go:linkname Getenv py.getenv
|
|
func Getenv(key *py.Object, default_ *py.Object) *py.Object
|
|
|
|
// Get an environment variable, return None if it doesn't exist.
|
|
//
|
|
// The optional second argument can specify an alternate default.
|
|
// key, default and the result are bytes.
|
|
//
|
|
//go:linkname Getenvb py.getenvb
|
|
func Getenvb(key *py.Object, default_ *py.Object) *py.Object
|
|
|
|
// Encode filename (an os.PathLike, bytes, or str) to the filesystem
|
|
//
|
|
// encoding with 'surrogateescape' error handler, return bytes unchanged.
|
|
// On Windows, use 'strict' error handler if the file system encoding is
|
|
// 'mbcs' (which is the default encoding).
|
|
//
|
|
//go:linkname Fsencode py.fsencode
|
|
func Fsencode(filename *py.Object) *py.Object
|
|
|
|
// Decode filename (an os.PathLike, bytes, or str) from the filesystem
|
|
//
|
|
// encoding with 'surrogateescape' error handler, return str unchanged. On
|
|
// Windows, use 'strict' error handler if the file system encoding is
|
|
// 'mbcs' (which is the default encoding).
|
|
//
|
|
//go:linkname Fsdecode py.fsdecode
|
|
func Fsdecode(filename *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnv py.spawnv
|
|
func Spawnv(mode *py.Object, file *py.Object, args *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnve py.spawnve
|
|
func Spawnve(mode *py.Object, file *py.Object, args *py.Object, env *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnvp py.spawnvp
|
|
func Spawnvp(mode *py.Object, file *py.Object, args *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnvpe py.spawnvpe
|
|
func Spawnvpe(mode *py.Object, file *py.Object, args *py.Object, env *py.Object) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnl py.spawnl
|
|
func Spawnl(mode *py.Object, file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnle py.spawnle
|
|
func Spawnle(mode *py.Object, file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnlp py.spawnlp
|
|
func Spawnlp(mode *py.Object, file *py.Object, __llgo_va_list ...interface{}) *py.Object
|
|
|
|
// 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.
|
|
//
|
|
//go:linkname Spawnlpe py.spawnlpe
|
|
func Spawnlpe(mode *py.Object, file *py.Object, __llgo_va_list ...interface{}) *py.Object
|