FreePascal Information Logo Friend of FreePascal Compiler Title
Articles with Feedback, FPC News Library, PDF Collection, Mail Lists, Books, Newsgroups, IRC Open online discussion areas Research and Tutorials Tools, Compilers and Utilities Blurbs about us, advertising, etc.
Welcome to the FoFPC Run-Time Library BaseUnix

Base Unix Functionality

uses
   UnixType; // Basic Unix Types

Overview


The BaseUnix unit contains basic unix functionality. It supersedes the Linux unit of version 1.0.X of the compiler, but does not implement all functionality of the linux unit.

People that have code which heavily uses the old Linux unit, can simply change linux by oldlinux in the uses clause of their projects, but they should really consider moving to the Unix and BaseUnix units.

For porting FPC to new unix-like platforms, it should be sufficient to implement the functionality in this unit for the new platform.

Methods

PointCreateShellArgV
    Create a null-terminated array of strings from a command-line string
PointFpAccess
    Check file access
PointFpAlarm
    Schedule an alarm signal to be delivered
PointFpChdir
    Change current working directory
PointFpChmod
    Change file permission bits
PointFpChown
    Change owner of file
PointFpClose
    Close file descriptor
PointFpClosedir
    Close directory file descriptor
PointFpDup
    Duplicate a file handle
PointFpDup2
    Duplicate one filehandle to another
PointFpExecv
    Execute process
PointFpExecve
    Execute process using environment
PointFpExit
    Exit the current process
PointFpFcntl
    File control operations
Pointfpfdfillset
    Set all filedescriptors in the set
PointfpFD_CLR
    Clears a filedescriptor in a set
PointfpFD_ISSET
    Check whether a filedescriptor is set
PointfpFD_SET
    Set a filedescriptor in a set
PointfpFD_ZERO
    Clear all file descriptors in set
PointFpFork
    Create child process
PointFPFStat
    Retrieve file information about a file descriptor
PointFpFtruncate
    Truncate file on certain size
PointFpGetcwd
    Retrieve the current working directory
PointFpGetegid
    Return effective group ID
PointFpGetEnv
    Return value of environment variable
Pointfpgeterrno
    Retrieve extended error information
PointFpGeteuid
    Return effective user ID
PointFpGetgid
    Return real group ID
PointFpGetgroups
    Get the list of supplementary groups
PointFpGetpgrp
    Get process group ID
PointFpGetpid
    Return current process ID
PointFpGetppid
    Return parent process ID
PointfpGetPriority
    Return process priority
PointFpGetuid
    Return current user ID
PointFpIOCtl
    General kernel IOCTL call
PointFpKill
    Send a signal to a process
PointFpLink
    Create a hard link to a file
PointFpLseek
    Set file pointer position
PointfpLstat
    Return information about symbolic link. Does not follow the link
PointFpMkdir
    Create a new directory
PointFpMkfifo
    Create FIFO (named pipe) in file system
PointFpmmap
    Create memory map of a file
PointFpmunmap
    Unmap previously mapped memory block
PointFpNanoSleep
    Suspend process for a short time
PointfpNice
    Set process priority
PointFpOpen
    Open file and return file descriptor
PointFpOpendir
    Open a directory for reading
PointFpPause
    Wait for a signal to arrive
PointFpPipe
    Create a set of pipe file handlers
PointFppRead
    Positional read: read from file descriptor at a certain position
PointFppWrite
    Positional write: write to file descriptor at a certain position
PointFpRead
    Read data from file descriptor
PointFpReaddir
    Read entry from directory
PointfpReadLink
    Read destination of symbolic link
PointFpReadV
    Vector read: Read into multiple buffers
PointFpRename
    Rename file
PointFpRmdir
    Remove a directory
PointfpSelect
    Wait for events on file descriptors
Pointfpseterrno
    Set extended error information
PointFpSetgid
    Set the current group ID
PointfpSetPriority
    Set process priority
PointFpSetsid
    Create a new session
Pointfpsettimeofday
    Set kernel time
PointFpSetuid
    Set the current user ID
PointFPSigaction
    Install signal handler
PointFpSigAddSet
    Set a signal in a signal set
PointFpSigDelSet
    Remove a signal from a signal set
PointFpsigEmptySet
    Clear all signals from signal set
PointFpSigFillSet
    Set all signals in signal set
PointFpSigIsMember
    Check whether a signal appears in a signal set
PointFpSignal
    Install signal handler (deprecated)
PointFpSigPending
    Return set of currently pending signals
PointFpSigProcMask
    Set list of blocked signals
PointFpSigSuspend
    Set signal mask and suspend process till signal is received
PointFpSleep
    Suspend process for several seconds
PointFpStat
    Retrieve file information about a file descriptor
PointfpSymlink
    Create a symbolic link
PointfpS_ISBLK
    Is file a block device
PointfpS_ISCHR
    Is file a character device
PointfpS_ISDIR
    Is file a directory
PointfpS_ISFIFO
    Is file a FIFO
PointfpS_ISLNK
    Is file a symbolic link
PointfpS_ISREG
    Is file a regular file
PointfpS_ISSOCK
    Is file a unix socket
Pointfptime
    Return the current unix time
PointFpTimes
    Return execution times for the current process
PointFpUmask
    Set file creation mask
PointFpUname
    Return system name
PointFpUnlink
    Unlink (i.e. remove) a file
PointFpUtime
    Set access and modification times of a file (touch)
PointFpWait
    Wait for a child to exit
PointFpWaitPid
    Wait for a process to terminate
PointFpWrite
    Write data to file descriptor
PointFpWriteV
    Vector write: Write from multiple buffers to a file descriptor
PointFreeShellArgV
    Free the result of a CreateShellArgV function
PointwexitStatus
    Extract the exit status from the fpWaitPID result
Pointwifexited
    Check whether the process exited normally
Pointwifsignaled
    Check whether the process was exited by a signal
Pointwstopsig
    Return the exit code from the process
Pointwtermsig
    Return the signal that caused a process to exit

Constants

PointARG_MAX = UnixType.ARG_MAX
    Maximum number of arguments to a program
PointBITSINWORD = 8 * SizeOf(cuLong)
    Number of bits in a word
PointESysE2BIG = 7
    System error: Argument list too long; used when the arguments passed to a new program being executed with one of the exec functions occupy too much memory space
PointESysEACCES = 13
    System error: Permission denied; the file permissions do not allow the attempted operation
PointESysEADDRINUSE = 98
    System error: Address already in use; The requested socket address is already in use
PointESysEADDRNOTAVAIL = 99
    System error: Cannot assign requested address; for example, you tried to give a socket a name that doesn't match the local host name
PointESysEADV = 68
    System error: Advertise error
PointESysEAFNOSUPPORT = 97
    System error: Address family not supported by protocol; The address family specified for a socket is not supported; it is inconsistent with the protocol being used on the socket
PointESysEAGAIN = 11
    System error: Try again; Resource temporarily unavailable; the call might work if you try again later. Only fork returns error code EAGAIN for such a reason
PointESysEALREADY = 114
    System error: Operation already in progress; An operation is already in progress on an object that has non-blocking mode selected
PointESysEBADE = 52
    System error: Invalid exchange
PointESysEBADF = 9
    System error: Bad file number; Bad file descriptor; for example, I/O on a descriptor that has been closed or reading from a descriptor open only for writing (or vice versa)
PointESysEBADFD = 77
    System error: File descriptor in bad state; This should be returned when you try to use a syscall that takes a FD, and you have passed it a FD that is not open
PointESysEBADMSG = 74
    System error: Not a data message; The linux kernel itself appears to never generate this error message. POSIX Standard: During a read(2), getmsg(2), getpmsg(2), or ioctl(2) I_RECVFD request to a STREAMS device, a message arrived at the head of the STREAM that is inappropriate for the function receiving the message. read(2) Message waiting to be read on a STREAM is not a data message
PointESysEBADR = 53
    System error: Invalid request descriptor;
PointESysEBADRQC = 56
    System error: Invalid request code
PointESysEBADSLT = 57
    System error: Invalid slot
PointESysEBFONT = 59
    System error: Bad font file format
PointESysEBUSY = 16
    System error: Device or resource busy; a system resource that can't be shared is already in use. For example, if you try to delete a file that is the root of a currently mounted filesystem, you get this error
PointESysECHILD = 10
    System error: No child processes; This error happens on operations that are supposed to manipulate child processes, when there aren't any processes to manipulate
PointESysECHRNG = 44
    System error: Channel number out of range
PointESysECOMM = 70
    System error: Communication error on send
PointESysECONNABORTED = 103
    System error: Software caused connection abort; A network connection was aborted locally
PointESysECONNREFUSED = 111
    System error: Connection refused; A remote host refused to allow the network connection (typically because it is not running the requested service)
PointESysECONNRESET = 104
    System error: Connection reset by peer; A network connection was closed for reasons outside the control of the local host, such as by the remote machine rebooting
PointESysEDEADLK = 35
    System error: Resource deadlock would occur; Deadlock avoided; allocating a system resource would have resulted in a deadlock situation. For an example, File Locks. Try again at a later time or free the resources which would have deadlocked
PointESysEDEADLOCK = 58
    System error: File locking deadlock error; Newer Kernels define EDEADLOCK = EDEADLK (58 had been released for new assignment)
PointESysEDESTADDRREQ = 89
    System error: Destination address required; No destination address was supplied on a socket operation
PointESysEDOM = 33
    System error: Math argument out of domain of function; used by mathematical functions when an argument value does not fall into the domain over which the function is defined
PointESysEDOTDOT = 73
    System error: RFS specific error
PointESysEDQUOT = 122
    System error: Quota exceeded; The user's disk quota was exceeded
PointESysEEXIST = 17
    System error: File exists; An existing file specified in an inappropriate context; for instance, as the new directory name in a mkdir() function
PointESysEFAULT = 14
    System error: Bad address; an invalid pointer was detected
PointESysEFBIG = 27
    System error: File too large; the size of a file would be larger than allowed by the system
PointESysEHOSTDOWN = 112
    System error: Host is down; The remote host for a requested network connection is down
PointESysEHOSTUNREACH = 113
    System error: No route to host; The remote host for a requested network connection is not reachable
PointESysEIDRM = 43
    System error: Identifier removed; The System V IPC resource ID used has been removed. Use an allocated IPC resource
PointESysEILSEQ = 84
    System error: Illegal byte sequence; An illegal multibyte sequence was found in the input. This usually means that you have the wrong charactor encoding, for instance the MicrosoftCorporation version of latin-1 (aka iso_8859_1(7)) (which has it's own stuff like "smart quotes" in the reserved bytes) instead of the real latin (or perhaps utf8(7))
PointESysEINPROGRESS = 115
    System error: Operation now in progress; An operation that cannot complete immediately was initiated on an object that has non-blocking mode selected
PointESysEINTR = 4
    System error: Interrupted system call; an asynchronous signal occured and prevented completion of the call. When this happens, you should try the call again
PointESysEINVAL = 22
    System error: Invalid argument; This is used to indicate various kinds of problems with passing the wrong argument to a library function
PointESysEIO = 5
    System error: I/O error; Input/output error; usually used for physical read or write errors
PointESysEISCONN = 106
    System error: Transport endpoint is already connected; You tried to connect a socket that is already connected
PointESysEISDIR = 21
    System error: Is a directory; File is a directory; attempting to open a directory for writing gives this error
PointESysEISNAM = 120
    System error: Is a named type file
PointESysEL2HLT = 51
    System error: Level 2 halted
PointESysEL2NSYNC = 45
    System error: Level 2 not synchronized
PointESysEL3HLT = 46
    System error: Level 3 halted
PointESysEL3RST = 47
    System error: Level 3 reset
PointESysELIBACC = 79
    System error: Can not access a needed shared library
PointESysELIBBAD = 80
    System error: Accessing a corrupted shared library
PointESysELIBEXEC = 83
    System error: Cannot exec a shared library directly
PointESysELIBMAX = 82
    System error: Attempting to link in too many shared libraries
PointESysELIBSCN = 81
    System error: .lib section in a.out corrupted
PointESysELNRNG = 48
    System error: Link number out of range
PointESysELOOP = 40
    System error: Too many symbolic links encountered in looking up a file name. This often indicates a cycle of symbolic links
PointESysEMFILE = 24
    System error: Too many open files; The current process has too many files open and can't open any more. Duplicate descriptors do count toward this limit
PointESysEMLINK = 31
    System error: Too many links; the link count of a single file or directory is too large. The exact number allowed is file-system dependent (sysv_fs.h). This could be caused by a directory having too many subdirectories (each subdirectory has .. as a hardlink to it's parent directory which causes that directory's hardlink count to be increased by one. So yes, this does mean that you are limited to 32000 subdirectories in one directory in ext3, even if you have hashdirs enabled.) As a consequence of this you can stat(2) a directory and add one (for ..) and you will know how many directories are in the current directory. (or subtract one (for .) to find out how many subdirectories there are). Some file systems (such as FAT) don't have hardlinks so the hardlink count can't overflow, and you can't rely on the hardlink count of a directory to be representive of how many subdirectories it has
PointESysEMSGSIZE = 90
    System error: Message too long; The size of a message sent on a socket was larger than the supported maximum size
PointESysEMULTIHOP = 72
    System error: Multihop attempted; Components of path require hopping to multiple remote machines and file system type does not allow it. This error occurs when users try to access remote resources that are not directly accessible
PointESysENAMETOOLONG = 36
    System error: File name too long; Filename too long (longer than PATH_MAX {4096 bytes}) or host name too long {103 bytes} (in gethostname or sethostname)
PointESysENAVAIL = 119
    System error: No XENIX semaphores available
PointESysENETDOWN = 100
    System error: Network is down; A socket operation failed because the network was down. This error usually means you are using an interface that has since been taken down. Check that the interface you are trying to use is up
PointESysENETRESET = 102
    System error: Network dropped connection because of reset
PointESysENETUNREACH = 101
    System error: Network is unreachable; A socket operation failed because the subnet containing the remost host was unreachable. You will get this error if you try to connect(2) a socket(2) to a host, and a router between you and that host believes the host is unreachable. It would then send ICMP_DEST_UNREACH, which would find its way back to you eventually. You would also see this instantly if for example your local machine knew it had no route to the destination host
PointESysENFILE = 23
    System error: File table overflow; There are too many distinct file openings in the entire system. Note that any number of linked channels count as just one file opening. The system has reached the maximum number of files it will allow to be open at once system wide. This is usually caused by a runaway process or group of processes. For example a cron job that runs a program but that program never exiting will eventually either run the system out of memory, out of processes, or out of files. lsof(8), fuser(1) etc can be used to try and determine what is using the files and killing the offending processes. Also, you can up the system wide number of files by putting a larger number into /proc/sys/fs/file-max, you will probably have to update /proc/sys/fs/inode-max too (maximum number of open inodes) Under Solaris this limit can be increased by setting maxusers in /etc/system. To make a change of /etc/system effective, a reboot is necessary
PointESysENOANO = 55
    System error: No anode
PointESysENOBUFS = 105
    System error: No buffer space available; The kernel's buffers for I/O operations are all in use. The kernel is out of memory. If this happens on a FreeBSD machine increase the number of mbuf's. Alternatively, wait a bit and try again later. Not to be confused with EAGAIN which means that the buffer for one resource is used (eg: the write buffer on a TCP connection), this means all of the buffers are in use
PointESysENOCSI = 50
    System error: No CSI structure available; Links between structures are invalid. Occurs while checking file system integrity and repairing file system. If an indirect block is not valid, issue ENOCSI and the file is not processed
PointESysENODATA = 61
    System error: No data available; It looks like this error condition is supposed to be used if a read(2) system call is used on a file descriptor in non-blocking mode and no data is ready to be read. However, according to the read(2) man page for the GNU C library, EAGAIN is used in this situation instead. ENODATA is used in the linux kernel in a few places, however. For example:
  • the NTFS and the JFS drivers use it as an error condition in a few places
  • The "Intel CPU Microcode Update driver for Linux" uses this error code
  • The ftape driver returns this on an ECC read failure
PointESysENODEV = 19
    System error: No such device; The wrong type of device was given to a function that expects a particular sort of device. The device you are trying to access doesn't exist, or the drivers for this device aren't loaded. This can occur if you refer to a file in /dev that has no driver loaded for it, or when loading a driver if no hardware exists. It is also quite common to see this under linux if you try to load a device driver and the driver can't find the corresponding hardware (for example, you've given the driver the wrong options)
PointESysENOENT = 2
    System error: No such file or directory; This is a "file doesn't exist" error for ordinary files that are referenced in contexts where they are expected to already exist. This can happen when creating a file if one of the parent directories doesn't exist
PointESysENOEXEC = 8
    System error: Executable format error; Invalid executable file format. This condition is detected by the exec functions. The most common format for binary programs under linux is called ELF
PointESysENOLCK = 37
    System error: No record locks available; This is used by the file locking facilities. This often happens on NFS if rpc.lockd(8) isn't running
PointESysENOLINK = 67
    System error: Link has been severed; Linux source uses it in a few places for what appears to be networking related (eg: the network card has no link). Man pages around the Internet imply that it's a filesystem error -- the file could not be found because a link to the remote host is down
PointESysENOMEM = 12
    System error: Out of memory; The system cannot allocate more virtual memory because its capacity is full. This almost certainly means that one or more programs on your machine has gone out of control and has used up all of the virtual memory (physical and swap) on the machine
PointESysENOMSG = 42
    System error: No message of desired type
PointESysENONET = 64
    System error: Machine is not on the network
PointESysENOPKG = 65
    System error: Package not installed; The feature you are trying to use is not available -- perhaps it requires a kernel recompilation
PointESysENOPROTOOPT = 92
    System error: Protocol not available; You specified a socket option that doesn't make sense for the particular protocol being used by the socket
PointESysENOSPC = 28
    System error: No space left on device; write operation on a file failed because the disk is full. Note that by default, on ext3 partitions, normal users cannot use up 100% of the disk space. 5% is reserved for root, so root has space to bzip2 files, move things around etc. This 5% margin also lowers the amount of fragmentation that occurs on a filesystem. This may mean that even though your partition may not be totally full yet, programs will complaing about being out of space. Depending on your tools, they may say that "100%" of the disk is full at this 5% margin (and therefore you can have up to 105% of the disk being used), or they may only say 95%. These settings can be changed with tune2fs(8). Linux offers a convenience for testing how code reacts to a full device in the form of /dev/full, a device which returns ENOSPC for any attempt to write to it
PointESysENOSR = 63
    System error: Out of streams resources
PointESysENOSTR = 60
    System error: Device not a stream
PointESysENOSYS = 38
    System error: Function not implemented; Some functions have commands or options defined that might not be supported in all implementations, and this is the kind of error you get if you request them and they are not supported
PointESysENOTBLK = 15
    System error: Block device required; A file that isn't a block special file was given in a situation that requires one. For example, trying to mount an ordinary file (or a character device) as a file system in Unix gives this error
PointESysENOTCONN = 107
    System error: Transport endpoint is not connected; The socket is not connected to anything. You get this error when you try to transmit data over a socket, without first specifying a destination for the data
PointESysENOTDIR = 20
    System error: Not a directory; A file that isn't a directory was specified when a directory is required. This more frequently (and confusingly) occurs when you are refering to a file, where you would expect a file to work, but the directory path is wrong, like an element of the path is actually a filename.
PointESysENOTEMPTY = 39
    System error: Directory not empty; where an empty directory was expected. Typically, this error occurs when you are trying to delete a directory. Before you can remove a directory, you must remove (unlink(2)) all files from that directory first. Note, even if the directory looks empty, remember to check for hidden files (the ones that start with ".")
PointESysENOTNAM = 118
    System error: Not a XENIX named type file
PointESysENOTSOCK< = 88/dt>     System error: Socket operation on non-socket; A file descriptor that isn't a socket was specified when a socket is required. Socket's are created with the socket(2) syscall
PointESysENOTTY = 25
    System error: Not a typewriter; Inappropriate I/O control operation, such as trying to set terminal modes on an ordinary file. This often occurs in shell scripts that want to use stty(1) to configure the terminal, but are being run from crond(8)? or perhaps your .profile when you're logging in using something that doesn't create a terminal (eg: issuing a remote command using ssh(1))
PointESysENOTUNIQ = 76
    System error: Name not unique on network
PointESysENXIO = 6
    System error: No such device or address; Typically, this means that a file representing a device has been installed incorrectly, and the system can't find the right kind of device driver for it. O_NONBLOCK | O_WRONLY is set, the named file is a FIFO and no process has the file open for reading. Or, the file is a device special file and no corresponding device exists
PointESysEOPNOTSUPP = 95
    System error: Operation not supported on transport endpoint; Some socket functions don't make sense for all types of sockets, and others may not be implemented for all communications protocols. This usually occurs if you are trying to accept(2) a non SOCK_STREAM socket
PointESysEOVERFLOW = 75
    System error: Value too large for defined data type; Returned when an application that can only handle small files (due to the version of libc it was compiled against), tries to access a large (>2g) file
PointESysEPERM = 1
    System error: Operation not permitted; only the owner of the file (or other resource) or processes with special privileges can perform the operation. This appears to be regularly confused with EACCES. EACCES is for permission based while EPERM is when trying to break a rule. For example, trying to erase a file on a read-only file system, trying to change nice when not a superuser, changing setpriority on a process that does not belong to you
PointESysEPFNOSUPPORT = 96
    System error: Protocol family not supported; the socket communications protocol family you requested is not supported
PointESysEPIPE = 32
    System error: Broken pipe; there is no process reading from the other end of a pipe. Every library function that returns this error code also generates a SIGPIPE signal; this signal terminates the program if not handled or blocked. Thus, your program will never actually see EPIPE unless it has handled or blocked SIGPIPE
PointESysEPROTO = 71
    System error: Protocol error; the protocol encountered an unrecoverable error for that endpoint. EPROTO is one of those catch-all error codes used by STREAMS-based drivers when a better code isn't available. On some STREAMS-based implementations, EPROTO could be returned by accept(2) if the incoming connection was reset before the accept completes
PointESysEPROTONOSUPPORT = 93
    System error: Protocol not supported; The socket domain does not support the requested communications protocol
PointESysEPROTOTYPE = 91
    System error: Protocol wrong type for socket; The socket type does not support the requested communications protocol
PointESysERANGE = 34
    System error: Math result not representable; used by mathematical functions when the result value is not representable because of overflow or underflow. This error number is also returned for example in gethostbyname_r (the re-entrant version of gethostbyname(3)) if the buffer given to the function is too small to store "auxiliary data"
PointESysEREMCHG = 78
    System error: Remote address changed
PointESysEREMOTE = 66
    System error: Object is remote; An attempt was made to NFS-mount a remote file system with a file name that already specifies an NFS-mounted file
PointESysEREMOTEIO = 121
    System error: Remote I/O error
PointESysERESTART = 85
    System error: Interrupted system call should be restarted
PointESysEROFS = 30
    System error: Read-only file system; An attempt was made to modify a file on a read-only file system
PointESysESHUTDOWN = 108
    System error: Cannot send after transport endpoint shutdown; The socket has already been shut down. shutdown(2) has been called on a socket to close down the sending end of the transmision, and then data was attempted to be sent
PointESysESOCKTNOSUPPORT = 94
    System error: Socket type not supported
PointESysESPIPE = 29
    System error: Illegal seek; Invalid seek operation (such as on Pipes, FIFO's, NamedPipes?, TTY's and socket(7)'s are all objects which aren't seekable, they are just linear streams of bytes
PointESysESRCH = 3
    System error: No such process; No process matches the specified process ID.It's also used for other things that don't exist in the filesystem not being found too, for instance, if you try and delete a route from the routing table and that route doesn't exist, you'll get a confusing "Process not found" message
PointESysESRMNT = 69
    System error: Srmount error
PointESysESTALE = 116
    System error: Stale NFS file handle; This indicates an internal confusion in the NFS system which is due to file system rearrangements on the server host. Repairing this condition usually requires unmounting and remounting the NFS file system on the local host. This occurs on an NFS client machine when you try and access a file that no longer exists on the server. Since NFS is a stateless protocol, the server cannot tell if a client has a file open, so when it is unlink(2)'d and a NFS client has recently used the file it appears as .nfsXXXXXXX for a short time, after which it is expired and removed from the disk. Any further attempts to access this file from a NFS client will result in "Stale NFS Handle"
PointESysESTRPIPE = 86
    System error: Streams pipe error
PointESysETIME = 62
    System error: Timer expired
PointESysETIMEDOUT = 110
    System error: Connection timed out; A socket operation with a specified timeout received no response during the timeout period
PointESysETOOMANYREFS = 109
    System error: Too many references: cannot splice
PointESysETXTBSY = 26
    System error: Text (code segment) file busy; An attempt to execute a file that is currently open for writing, or write to a file that is currently being executed. (The name stands for "text file busy".) This cannot occur on MicrosoftWindows since it refers to a file by name, thus you cannot remove a file that is in use in Windows
PointESysEUCLEAN = 117
    System error: Structure needs cleaning; returned inside the smbfs code, which appears to me to be related to if you access a share that has no medium (eg: an empty floppy drive) you'll get this error
PointESysEUNATCH = 49
    System error: Protocol driver not attached
PointESysEUSERS = 87
    System error: Too many users; The file quota system is confused because there are too many users
PointESysEWOULDBLOCK = ESysEAGAIN = 11
    System error: Operation would block; An operation that would block was attempted on an object that has non-blocking mode selected
PointESysEXDEV = 18
    System error: Cross-device link; An attempt to make an improper link across file systems was detected. Since inode numbers are only unique on the filesystem that they exist, you cannot create a HardLink across a filesystem boundary
PointESysEXFULL = 54
    System error: Exchange full
PointFD_MAXFDSET = 1024
    Maximum elements in a TFDSet array
PointFPE_FLTDIV = 3
    Value signalling floating point divide by zero in case of SIGFPE signal
PointFPE_FLTINV = 7
    Value signalling floating point invalid operation in case of SIGFPE signal
PointFPE_FLTOVF = 4
    Value signalling floating point overflow in case of SIGFPE signal
PointFPE_FLTRES = 6
    Value signalling floating point inexact result in case of SIGFPE signal
PointFPE_FLTSUB = 8
    Value signalling floating point subscript out of range in case of SIGFPE signal
PointFPE_FLTUND = 5
    Value signalling floating point underflow in case of SIGFPE signal
PointFPE_INTDIV = 1
    Value signalling integer divide in case of SIGFPE signal
PointFPE_INTOVF = 2
    Value signalling integer overflow in case of SIGFPE signal
PointF_GetFd = 1
    fpFCntl command: Get close-on-exec flag
PointF_GetFl = 3
    fpFCntl command: Get filedescriptor flags
PointF_GetLk = 5
    fpFCntl command: Get lock
PointF_GetOwn = 9
    fpFCntl command: get owner of filedescriptor events
PointF_OK = 0
    fpAccess call test: file exists
PointF_SetFd = 2
    fpFCntl command: Set close-on-exec flag
PointF_SetFl = 4
    fpFCntl command: Set filedescriptor flags
PointF_SetLk = 6
    fpFCntl command: Set lock
PointF_SetLkW = 7
    fpFCntl command: Test lock
PointF_SetOwn = 8
    fpFCntl command: Set owner of filedescriptor events
Pointln2bitmask = 1 shl ln2bitsinword - 1
    Last bit in word.
PointMAP_ANON = MAP_ANONYMOUS = $20
    Anonymous memory mapping (data private to application)
PointMAP_ANONYMOUS = $20
    FpMMap map type: Don't use a file
PointMAP_FAILED = Pointer(-1)
    Memory mapping failed error code
PointMAP_FIXED = $10
    FpMMap map type: Interpret addr exactly
PointMAP_PRIVATE = $2
    FpMMap map type: Changes are private
PointMAP_SHARED = $1
    FpMMap map type: Share changes
PointMAP_TYPE = $F
    FpMMap map type: Bitmask for type of mapping
PointNAME_MAX = UnixType.NAME_MAX
    Maximum filename length
PointO_APPEND = $400
    fpOpen file open mode: Append to file
PointO_CREAT = $40
    fpOpen file open mode: Create if file does not yet exist.
PointO_DIRECT = $4000
    fpOpen file open mode: Minimize caching effects
PointO_DIRECTORY = $10000
    fpOpen file open mode: File must be directory.
PointO_EXCL = $80
    fpOpen file open mode: Open exclusively
PointO_NDELAY = O_NONBLOCK = $8000
    fpOpen file open mode: Alias for O_NonBlock
PointO_NOCTTY = $100
    fpOpen file open mode: No TTY control.
PointO_NOFOLLOW = $20000
    fpOpen file open mode: Fail if file is symbolic link.
PointO_NONBLOCK = $8000
    fpOpen file open mode: Open in non-blocking mode
PointO_RDONLY = $0
    fpOpen file open mode: Read only
PointO_RDWR = $2
    fpOpen file open mode: Read/Write
PointO_SYNC = $1000
    fpOpen file open mode: Write to disc at once
PointO_TRUNC = $200
    fpOpen file open mode: Truncate file to length 0
PointO_WRONLY = $1
    fpOpen file open mode: Write only
PointPATH_MAX = UnixType.PATH_MAX
    Maximum pathname length.
PointPRIO_PGRP = UnixType.PIO_PGRP
    Easy access alias for unixtype.PRIO_PGRP
PointPRIO_PROCESS = UnixType.PRIO_PROCESS
    Easy access alias for unixtype.PRIO_PROCESS
PointPRIO_USER = UnixType.PRIO_USER
    Easy access alias for unixtype.PRIO_USER
PointPROT_EXEC = $4
    FpMMap memory access: page can be executed
PointPROT_NONE = $0
    FpMMap memory access: page can not be accessed
PointPROT_READ = $1
    FpMMap memory access: page can be read
PointPROT_WRITE = $2
    FpMMap memory access: page can be written
PointRLIMIT_AS = 9
    RLimit request address space limit
PointRLIMIT_CORE = 4
    RLimit request max core file size
PointRLIMIT_CPU = 0
    RLimit request CPU time in ms
PointRLIMIT_DATA = 2
    RLimit request max data size
PointRLIMIT_FSIZE = 1
    Rlimit request maximum filesize
PointRLIMIT_LOCKS = 10
    RLimit request maximum file locks held
PointRLIMIT_MEMLOCK = 8
    RLimit request max locked-in-memory address space
PointRLIMIT_NOFILE = 7
    RLimit request max number of open files
PointRLIMIT_NPROC = 6
    RLimit request max number of processes
PointRLIMIT_RSS = 5
    RLimit request max resident set size
PointRLIMIT_STACK = 3
    RLimit request max stack size
PointR_OK = 4
    fpAccess call test: read allowed
PointSA_INTERRUPT = $20000000
    Sigaction options: (Not Portable) For Older Kernels, newer this is a default
PointSA_NOCLDSTOP = 1
    Sigaction options: If signum is SIGCHLD, do not receive notification when child processes stop (i.e., when they receive one of SIGSTOP, SIGTSTP, SIGTTIN or SIGTTOU) or resume (i.e., they receive SIGCONT) (see wait(2)). This flag is only meaningful when establishing a handler for SIGCHLD. If this bit is set when installing a catching function for the SIGCHLD signal, the SIGCHLD signal will be generated only when a child process exits, not when a child process stops
PointSA_NOCLDWAIT = 2
    Sigaction options: If signum is SIGCHLD, do not transform children into zombies when they terminate. See also waitpid(2). This flag is only meaningful when establishing a handler for SIGCHLD, or when setting that signal’s disposition to SIG_DFL. If the SA_NOCLDWAIT flag is set when establishing a handler for SIGCHLD, POSIX.1 leaves it unspecified whether a SIGCHLD signal is generated when a child process terminates. On Linux, a SIGCHLD signal is generated in this case; on some other implementations, it is not
PointSA_NODEFER = $40000000
    Sigaction options: Do not prevent the signal from being received from within its own signal handler. This flag is only meaningful when establishing a signal handler. SA_NOMASK is an obsolete, non-standard synonym for this flag
PointSA_NOMASK = SA_NODEFER = $40000000
    Sigaction options: Do not prevent the signal from being received when it is handled
PointSA_ONESHOT = SA_RESETHAND = $80000000
    Sigaction options: Restore the signal action to the default state
PointSA_ONSTACK = $08000000
    Sigaction options: Call the signal handler on an alternate signal stack provided by sigaltstack(2). If an alternate stack is not available, the default stack will be used. This flag is only meaningful when establishing a signal handler
PointSA_RESETHAND = $80000000
    Sigaction options: Restore the signal action to the default state once the signal handler has been called. This flag is only meaningful when establishing a signal handler. SA_ONESHOT is an obsolete, non-standard synonym for this flag
PointSA_RESTART = $10000000
    Sigaction options: If a signal is caught during the system calls listed below, the call may be forced to terminate with the error EINTR, the call may return with a data transfer shorter than requested, or the call may be restarted. Restart of pending calls is requested by setting the SA_RESTART bit in sa_flags. The affected system calls include open(2), read(2), write(2), sendto(2), recvfrom(2), sendmsg(2) and recvmsg(2) on a communications channel or a slow device (such as a terminal, but not a regular file) and during a wait(2) or ioctl(2). However, calls that have already committed are not restarted, but instead return a partial success (for example, a short read count)
PointSA_RESTORER = $04000000
    Sigaction options: Signal restorer handler
PointSA_SIGINFO = 4
    Sigaction options: The signal handler takes 3 arguments, not one. In this case, sa_sigaction should be set instead of sa_handler. This flag is only meaningful when establishing a signal handler.
PointSEEK_CUR = 1
    fpLSeek option: Set position relative to current position
PointSEEK_END = 2
    fpLSeek option: Set position relative to end of file
PointSEEK_SET = 0
    fpLSeek option: Set absolute position
PointSIGABRT = 6
    Signal: ABRT (Abort)
PointSIGALRM = 14
    Signal: ALRM (Alarm clock)
PointSIGBUS = 7
    Signal: BUS (bus error)
PointSIGCHLD = 17
    Signal: CHLD (child status changed)
PointSIGCONT = 18
    Signal: CONT (Continue)
PointSIGFPE = 8
    Signal: FPE (Floating point error)
PointSIGHUP = 1
    Signal: HUP (Hangup)
PointSIGILL = 4
    Signal: ILL (Illegal instruction)
PointSIGINT = 2
    Signal: INT (Interrupt)
PointSIGIO = 29
    Signal: IO (I/O operation possible)
PointSIGIOT = 6
    Signal: IOT (IOT trap)
PointSIGKILL = 9
    Signal: KILL (unblockable)
PointSIGPIPE = 13
    Signal: PIPE (Broken pipe)
PointSIGPOLL = SIGIO = 29
    Signal: POLL (Pollable event)
PointSIGPROF = 27
    Signal: PROF (Profiling alarm)
PointSIGPWR = 30
    Signal: PWR (power failure restart)
PointSIGQUIT = 3
    Signal: QUIT
PointSIGSEGV = 11
    Signal: SEGV (Segmentation violation)
PointSIGSTKFLT = 16
    Signal: STKFLT (Stack Fault)
PointSIGSTOP = 19
    Signal: STOP (Stop, unblockable)
PointSIGTERM = 15
    Signal: TERM (Terminate)
PointSIGTRAP = 5
    Signal: TRAP (Trace trap)
PointSIGTSTP = 20
    Signal: TSTP (keyboard stop)
PointSIGTTIN = 21
    Signal: TTIN (Terminal input, background)
PointSIGTTOU = 22
    Signal: TTOU (Terminal output, background)
PointSIGUNUSED = 31
    Signal: Unused
PointSIGURG = 23
    Signal: URG (Socket urgent condition)
PointSIGUSR1 = 10
    Signal: USR1 (User-defined signal 1)
PointSIGUSR2 = 12
    Signal: USR2 (User-defined signal 2)
PointSIGVTALRM = 26
    Signal: VTALRM (Virtual alarm clock)
PointSIGWINCH = 28
    Signal: WINCH (Window/Terminal size change)
PointSIGXCPU = 24
    Signal: XCPU (CPU limit exceeded)
PointSIGXFSZ = 25
    Signal: XFSZ (File size limit exceeded)
PointSIG_BLOCK = 0
    Sigprocmask flags: Add signals to the set of blocked signals.
PointSIG_DFL = 0
    Signal handler: Default signal handler
PointSIG_ERR = -1
    Signal handler: error
PointSIG_IGN = 1
    Signal handler: Ignore signal
PointSIG_MAXSIG = UnixType.SIG_MAXSIG
    Maximum system signal number
PointSIG_SETMASK = 2
    Sigprocmask flags: Set of blocked signals is given
PointSIG_UNBLOCK = 1
    Sigprocmask flags: Remove signals from the set of blocked signals
PointSI_PAD_SIZE = ((128 div SizeOf(LongInt))-3)
    Signal information pad size
PointSYS_NMLN = UnixType.SYS_NMLN
    Max system name length
PointS_IFBLK = 24576
    File (#rtl.baseunix.stat record) mode: Block device
PointS_IFCHR = 8192
    File (#rtl.baseunix.stat record) mode: Character device
PointS_IFDIR = 16384
    File (#rtl.baseunix.stat record) mode: Directory
PointS_IFIFO = 4096
    File (#rtl.baseunix.stat record) mode: FIFO
PointS_IFLNK = 40960
    File (#rtl.baseunix.stat record) mode: Link
PointS_IFMT = 61440
    File (#rtl.baseunix.stat record) mode: File type bit mask
PointS_IFREG = 32768
    File (#rtl.baseunix.stat record) mode: Regular file
PointS_IFSOCK = 49152
    File (#rtl.baseunix.stat record) mode: Socket
PointS_IRGRP = %0000100000
    Mode flag: Read by group
PointS_IROTH = %0000000100
    Mode flag: Read by others
PointS_IRUSR = %0100000000
    Mode flag: Read by owner
PointS_IRWXU = S_IRUSR or S_IWUSR or S_IXUSR
    Mode flag: Read, write, execute by user
PointS_IWGRP = %0000010000
    Mode flag: Write by group
PointS_IWOTH = %0000000010
    Mode flag: Write by others
PointS_IWUSR = %0010000000
    Mode flag: Write by owner
PointS_IXGRP = %0000001000
    Mode flag: Execute by group
PointS_IXOTH = %0000000001
    Mode flag: Execute by others
PointS_IXUSR = %0001000000
    Mode flag: Execute by owner
PointUTSNAME_DOMAIN_LENGTH = UTSNAME_LENGTH
    Max length of utsname domain name
PointUTSNAME_LENGTH = SYS_NMLN
    Max length of utsname system name, release, version, machine
PointUTSNAME_NODENAME_LENGTH = UTSNAME_LENGTH
    Max length of utsname node name
PointWNOHANG = 1
    #rtl.baseunix.fpWaitpid option: Do not wait for processes to terminate
Pointwordsinfdset = FD_MAXFDSET div BITSINWORD
    Number of words in a TFDSet array
Pointwordsinsigset = SIG_MAXSIG div BITSINWORD
    Number of words in a signal set.
PointWUNTRACED = 2
    #rtl.baseunix.fpWaitpid option: Also report children wich were stopped but not yet reported
PointW_OK = 2
    fpAccess call test: write allowed
PointX_OK = 1
    fpAccess call test: execute allowed

Types and Structures

Pointpthread_fastlock = Record
    
PointBlkcnt64_t = cuint64
    64-bit block count
PointBlkcnt_t = cuint
    Block count type
PointBlksize_t = cuint
    Block size type
Pointcbool = longbool
    Boolean type
Pointcchar = cint8
    Alias for #rtl.UnixType.cchar
Pointcdouble = double
    Double precision real format.
Pointcfloat = single
    Floating-point real format
Pointcint = cint32
    C type: integer (natural size)
Pointcint16 = smallint
    C type: 16 bits sized, signed integer
Pointcint32 = longint
    C type: 32 bits sized, signed integer
Pointcint64 = int64
    C type: 64 bits sized, signed integer
Pointcint8 = shortint
    C type: 8 bits sized, signed integer
Pointclock_t = culong (64Bit:cuint64)
    Clock ticks type
Pointclong = longint (64Bit:int64)
    C type: long signed integer (double sized)
Pointclongdouble = extended
    Long double
Pointclonglong = cuint64
    C type: 64-bit (double long) signed integer.
Pointcschar = cint8
    Signed character type
Pointcshort = cint16
    C type: short signed integer (half sized)
Pointcsigned = cint
    Signed integer
Pointcsint = cint32
    Signed integer
Pointcslong = int64
    Signed long
Pointcslonglong = cint64
    Signed longlong type
Pointcsshort = cint16
    Short signed integer type
Pointcuchar = cuint8
    Alias for #rtl.UnixType.cuchar
Pointcuint = cuint32
    C type: unsigned integer (natural size)
Pointcuint16 = word
    C type: 16 bits sized, unsigned integer
Pointcuint32 = longword
    C type: 32 bits sized, unsigned integer
Pointcuint64 = qword
    C type: 64 bits sized, unsigned integer
Pointcuint8 = byte
    C type: 8 bits sized, unsigned integer
Pointculong = cardinal (64Bit:qword)
    C type: long unsigned integer (double sized)
Pointculonglong = cuint64
    C type: 64-bit (double long) unsigned integer
Pointcunsigned = cuint
    Alias for #rtl.unixtype.cunsigned
Pointcushort = cuint16
    C type: short unsigned integer (half sized)
Pointdev_t = cuint64
    Device descriptor type
PointDir = Record
    Record used in fpOpenDir and fpReadDir calls
PointDirent = Record
    Record used in the fpReadDir function to return files in a directory
PointFLock = Record
    Lock description type for fpFCntl lock call
Pointgid_t = cuint32
    Group ID type
Pointino_t = clong
    Inode type
Pointiovec = Record
    IO buffer structure
Pointipc_pid_t = cushort (64Bit:cint)
    
Pointmbstate_t = Record
    
Pointmbstate_value_t = Record
    
Pointmode_t = cuint32
    Inode mode type
Pointnlink_t = cuint32
    Number of links type
Pointoff_t = cint32
    Offset type
PointPBlkCnt
    pointer to TBlkCnt type
PointPBlkSize
    Pointer to TBlkSize type
Pointpcbool
    Pointer to boolean type
Pointpcchar
    Alias for #rtl.UnixType.pcchar
Pointpcdouble
    Pointer to cdouble type
Pointpcfloat
    Pointer to cfloat type
Pointpcint
    Pointer to cInt type
Pointpcint16
    Pointer to 16-bit signed integer type
Pointpcint32
    Pointer to signed 32-bit integer type
Pointpcint64
    Pointer to signed 64-bit integer type
Pointpcint8
    Pointer to 8-bits signed integer type
PointpClock
    Pointer to TClock type
Pointpclong
    Pointer to cLong type
Pointpclongdouble
    Pointer to long double
Pointpclonglong
    Pointer to longlong type
Pointpcschar
    Pointer to signed character type
Pointpcshort
    Pointer to cShort type
Pointpcsigned
    Pointer to signed integer
Pointpcsint
    Pointer to signed integer
Pointpcslong
    Pointer to signed long
Pointpcslonglong
    Pointer to Signed longlong type
Pointpcsshort
    Pointer to short signed integer type
Pointpcuchar
    Alias for #rtl.UnixType.pcuchar
Pointpcuint
    Pointer to cUInt type
Pointpcuint16
    Pointer to 16-bit unsigned integer type
Pointpcuint32
    Pointer to unsigned 32-bit integer type
Pointpcuint64
    Pointer to unsigned 64-bit integer type
Pointpcuint8
    Pointer to 8-bits unsigned integer type
Pointpculong
    Pointer to cuLong type
Pointpculonglong
    Unsigned longlong type
Pointpcunsigned
    Alias for #rtl.unixtype.pcunsigned
Pointpcushort
    Pointer to cuShort type
PointpDev
    Pointer to TDev type
PointpDir
    Pointer to TDir record
PointpDirent
    Pointer to TDirent record
PointpFDSet
    Pointer to TFDSet type
PointpFilDes
    Pointer to TFilDes type
Pointpfpstate
    Pointer to tfpstate record
PointpGid
    Pointer to TGid type
PointpGrpArr
    Pointer to TGrpArr array
Pointpid_t = cint
    Process ID type
PointpIno
    Pointer to TIno type
Pointpiovec
    pointer to a iovec record
PointpMode
    Pointer to TMode type
PointpnLink
    Pointer to TnLink type
PointpOff
    Pointer to TOff type
PointpPid
    Pointer to TPid type
PointPRLimit
    Pointer to TRLimit record
Pointpsigactionrec
    Pointer to SigActionRec record type
PointPSigContext
    Pointer to #rtl.baseunix.TSigContext record type
Pointpsiginfo
    Pointer to #rtl.baseunix.TSigInfo record type
Pointpsigset
    Pointer to SigSet type
PointpSize
    Pointer to TSize type
PointpSize_tn
    Pointer to TSockLen type
PointpsSize
    Pointer to TsSize type
PointPStat
    Pointer to TStat type
Pointpthread_attr_t = Record
    
Pointpthread_cond_t = Record
    Thread conditional variable type
Pointpthread_condattr_t = Record
    
Pointpthread_key_t = Record
    
Pointpthread_mutex_t = Record
    Thread mutex type
Pointpthread_mutexattr_t = Record
    
Pointpthread_rwlock_t = Record
    
Pointpthread_rwlockattr_t = Record
    
Pointpthread_t = culong
    Posix thread type
PointpTime
    Pointer to TTime type
Pointptimespec
    Pointer to timespec type
Pointptimeval
    Pointer to timeval type
Pointptimezone
    Pointer to TimeZone record
Pointptime_t
    Pointer to time_t type
PointPTms
    Pointer to TTms type
PointPucontext
    Pointer to TUContext type
PointpUid
    Pointer to TUid type
PointpUtimBuf
    Pointer to TUTimBuf type
PointPUtsName
    Pointer to TUtsName type
Pointrlim_t = cuLong
    TRLimit record field type
Pointsched_param = record
    
Pointsem_t = Record
    
Pointsigactionhandler
    Callback prototype for a #rtl.baseunix.SigActionRec record
Pointsigactionhandler_t
    Standard signal action handler prototype
Pointsigactionrec
    Record used in fpSigAction call
Pointsignalhandler
    Simple signal handler prototype
Pointsignalhandler_t
    Standard signal handler prototype
Pointsigrestorerhandler
    Alias for sigrestorerhandler_t type
Pointsigrestorerhandler_t
    Standard signal action restorer prototype
Pointsigset
    Signal set type
Pointsigset_t
    Signal set type
Pointsize_t = cuint32 (64bit:cuint64)
    Size specification type
Pointsocklen_t = cuint32
    Socket address length type
Pointssize_t = cuint32 (64bit:cuint64)
    Small size type.
PointStat
    Record describing an inode (file) in the FPFstat call
PointTBlkCnt
    Alias for Blkcnt_t type
PointTBlkSize
    Alias for blksize_t type
PointTClock
    Alias for clock_t type
PointTDev
    Alias for dev_t type
PointTDir
    Alias for Dir type
PointTDirent
    Alias for Dirent type
PointTFDSet = Array [0..(FD_MAXSET div BITSINWORD)-1] of cuLong
    File descriptor set for fpSelect call
PointTFilDes
    Array of file descriptors as used in fpPipe call
Pointtfpreg
    Record describing floating point register in signal handler
Pointtfpstate
    Record describing floating point unit in signal handler
PointTGid
    Alias for gid_t type
PointTGrpArr
    Array of gid_t IDs
Pointtimespec = packed Record
    Short time specification type
Pointtimeval = packed Record
    Time specification type
Pointtimezone = packed Record
    Record describing a timezone
Pointtime_t = clong (64bit:cint64)
    Time span type
PointTIno
    Alias for ino_t type
PointTIOCtlRequest = cint
    Easy access alias for unixtype.TIOCtlRequest
Pointtiovec
    Alias for the iovec record type
PointTMode
    Alias for mode_t type
Pointtms = packed Record
    Record containing timings for fpTimes call
PointTnLink
    Alias for nlink_t type
PointTOff
    Alias for off_t type
PointTPid
    Alias for pid_t type
PointTRLimit = Record
    Structure to return RLimit data in
Pointtsigactionhandler
    Alias for sigactionhandler_t type
Pointtsigaltstack
    Provide the location of an alternate signal handler stack
PointTSigContext
    Record describing the CPU context when a signal occurs
Pointtsiginfo
    Record describing the signal when a signal occurs
Pointtsignalhandler
    Alias for signalhandler_t type
Pointtsigrestorerhandler
    Alias for sigrestorerhandler_t type
Pointtsigset
    Alias for SigSet type
PointTSize
    Alias for size_t type
PointTSocklen
    Alias for socklen_t type
PointTsSize
    Alias for ssize_t type
PointTStat
    Alias for Stat type
Pointtstatfs = packed Record
    Record describing a file system in the baseunix.fpstatfs call
PointTTime
    Alias for TTime type
PointTtimespec
    Alias for TimeSpec type
PointTTimeVal
    Alias for timeval type
PointTTimeZone
    Alias for TimeZone record
PointTTms
    Alias for Tms record type
PointTUcontext
    Context description record
PointTUid
    Alias for uid_t type
PointTUtimBuf
    Alias for UtimBuf type
PointTUtsName
    Alias for UtsName type
Pointuid_t = cuint32
    User ID type
PointUTimBuf = Record
    Record used in fpUtime to set file access and modificaton times
PointUtsName = Record
    Record used to return kernel information in fpUName function
Pointwchar_t = cint32
    
Pointwint_t = cint32
    

Classes

There are not any classes globally defined in this unit.

Global Variables

There are not any variables globally defined in this unit.


 Links and Products we find useful



ButtonGenerator.com
Valid XHTML 1.0 Transitional Internet Map
Programmer's Heaven
grat-i-fi-ca-tion - noun
the state of being gratified; great satisfaction.


"Your research documents are head on ... I look forward to seeing more notes on your research."

Brian Ellixson
FreePascal User
Locations of visitors to this page world map hits counter
Copyright 2009 by 3F, LLC. All rights reserved. Worldwide.
Your request was processed by server #2 in 0.015401 secs.

sponsor
This sponsor helps us with our documentation