NAME ^

src/pmc/os.pmc - Files and Directories PMC

DESCRIPTION ^

OS is a singleton class which provides access to the filesystem files and directories.

Methods ^

void *get_pointer()

void set_pointer(void *ptr)

These two functions are part of the singleton creation interface. For more information see src/pmc.c.

STRING *cwd()

Returns the current working directory.

void chdir(STRING *path)

Changes the current working directory to the one specified by path.

void rm(STRING *path)

Calls remove to remove the file or empty directory specified by path.

void mkdir(STRING *path, STRING *mode)

Creates a directory specified by path with mode mode.

fixedpmcarray *stat(STRING *path)

Stats a file, and returns a 13 position array as in Perl:

     0 dev      device number of filesystem
     1 ino      inode number
     2 mode     file mode  (type and permissions)
     3 nlink    number of (hard) links to the file
     4 uid      numeric user ID of file's owner
     5 gid      numeric group ID of file's owner
     6 rdev     the device identifier (special files only)
     7 size     total size of file, in bytes
     8 atime    last access time in seconds since the epoch
     9 mtime    last modify time in seconds since the epoch
    10 ctime    inode change time in seconds since the epoch (*)
    11 blksize  preferred block size for file system I/O
    12 blocks   actual number of blocks allocated
11 and 12 are not available under Windows.

fixedpmcarray *lstat(STRING *path)

Stats a file, and returns a 13 position array as in Perl:

     0 dev      device number of filesystem
     1 ino      inode number
     2 mode     file mode  (type and permissions)
     3 nlink    number of (hard) links to the file
     4 uid      numeric user ID of file's owner
     5 gid      numeric group ID of file's owner
     6 rdev     the device identifier (special files only)
     7 size     total size of file, in bytes
     8 atime    last access time in seconds since the epoch
     9 mtime    last modify time in seconds since the epoch
    10 ctime    inode change time in seconds since the epoch (*)
    11 blksize  preferred block size for file system I/O
    12 blocks   actual number of blocks allocated
11 and 12 are not available under Windows.

void symlink(STRING *from, STRING *to)

Creates a symlink, where available

void link(STRING *from, STRING *to)

Creates a hard link, where available(?)

INTVAL umask(INTVAL mask)

umask sets the process's file mode creation mask (and returns the previous one).

INTVAL chroot(STRING *path)

it makes the named directory the new root directory for all further pathnames that begin with a "/" by your process and all its children.

NOTE: perl restricts this operation to superusers. It might be a good idea to do the same with parrot.

PMC *readdir(STRING *path)

reads entries from a directory.

rename(STRING *oldpath, STRING *newpath)

This method is a wrapper for rename(2). On error a SystemError exception is thrown.

SEE ALS0 ^

   chdir(2), getcwd(3), unlink(2), mkdir(2), stat(2), lstat(2),
   symlink(2), link(2), umask(2), chroot(2)


parrot