Browse Source

+ All functions now documented

michael 25 years ago
parent
commit
26fb833412
1 changed files with 262 additions and 18 deletions
  1. 262 18
      docs/linux.tex

+ 262 - 18
docs/linux.tex

@@ -723,7 +723,7 @@ symbolic link, i.e. a symbolic link, whose expansion points to itself.
 \end{description}
 
 \SeeAlso
-\seef{Chown}, \seef{Access}, \seem{Chmod}(2)
+\seef{Chown}, \seef{Access}, \seem{Chmod}(2), \seef{Octal}
 \end{function}
 
 \FPCexample{ex23}
@@ -791,7 +791,7 @@ Errors are returned in LinuxError.
 \end{function}
 For an example, see \seef{OpenDir}.
 
-\begin{function}{}
+\begin{function}{CreateShellArgV}
 \Declaration
 function  CreateShellArgV(const prog:string):ppchar;
 function  CreateShellArgV(const prog:Ansistring):ppchar;
@@ -1353,8 +1353,8 @@ filedescriptor (a longint)
 \item [LOCK\_SH] \ sets a shared lock.
 \item [LOCK\_EX] \ sets an exclusive lock.
 \item [LOCK\_UN] \ unlocks the file.
-\item [LOCK\_NB] \ This can be OR-ed together with the other. If this is done
-the application doesn't block when locking.
+\item [LOCK\_NB] \ This can be OR-ed together with the other. 
+If this is done the application doesn't block when locking.
 \end{description}
 
 The function returns \var{True} if successful, \var{False} otherwise.
@@ -1364,6 +1364,53 @@ If an error occurs, it is reported in \var{LinuxError}.
 \seef{Fcntl}, \seem{flock}{2}
 \end{function}
 
+\begin{function}{FNMatch}
+\Declaration
+Function FNMatch(const Pattern,Name:string):Boolean;
+\Description
+\var{FNMatch} returns \var{True} if the filename in \var{Name}
+matches the wildcard pattern in \var{Pattern}, \var{False} otherwise.
+
+\var{Pattern} can contain the wildcards \var{*} (match zero or more 
+arbitrary characters) or \var{?} (match a single character).
+\Errors
+None.
+\SeeAlso
+\seef{FSearch}, \seef{FExpand}
+\end{function}
+
+\FPCexample{ex69}
+
+\begin{function}{FSearch}
+\Declaration
+Function FSearch (Path : pathstr;DirList : string) : Pathstr;
+\Description
+ Searches in \var{DirList}, a colon separated list of directories,
+for a file named \var{Path}. It then returns a path to the found file.
+\Errors
+An empty string if no such file was found.
+\SeeAlso
+\seef{BaseName}, \seef{DirName}, \seef{FExpand}, \seef{FNMatch}
+\end{function}
+
+\FPCexample{ex46}
+
+\begin{procedurel}{FSplit}{LFsplit}
+\Declaration
+Procedure FSplit(const Path:PathStr; \\
+Var Dir:DirStr;Var Name:NameStr;Var Ext:ExtStr);
+\Description
+\var{FSplit} splits a full file name into 3 parts : A \var{Path}, a
+\var{Name} and an extension  (in \var{ext}). 
+The extension is taken to be all letters after the last dot (.).
+\Errors
+None.
+\SeeAlso
+\seef{FSearch}
+\end{procedurel}
+
+\FPCexample{ex67}
+
 \begin{function}{FSStat}
 \Declaration
 Function FSStat (Path : Pathstr; Var Info : statfs) : Boolean;
@@ -1392,19 +1439,6 @@ was succesfull, \var{False} if the call failed.
 
 \FPCexample{ex30}
 
-\begin{function}{FSearch}
-\Declaration
-Function FSearch (Path : pathstr;DirList : string) : Pathstr;
-\Description
- Searches in \var{DirList}, a colon separated list of directories,
-for a file named \var{Path}. It then returns a path to the found file.
-\Errors
-An empty string if no such file was found.
-\SeeAlso
-\seef{BaseName}, \seef{DirName}, \seef{FExpand} 
-\end{function}
-
-\FPCexample{ex46}
 
 \begin{function}{FStat}
 \Declaration
@@ -2304,6 +2338,25 @@ do a priority increase.
 
 \FPCexample{ex15}
 
+\begin{function}{Octal}
+\Declaration
+Function Octal(l:longint):longint;
+\Description
+\var{Octal} will convert a number specified as an octal number to it's
+decimal value.
+
+This is useful for the \seef{Chmod} call, where permissions are specified
+as octal numbers.
+\Errors
+No checking is performed whether the given number is a correct Octal number.
+e.g. specifying \var{998} is possible; the result will be wrong in that
+case.
+\SeeAlso
+\seef{Chmod}.
+\end{function}
+
+\FPCexample{ex68}
+
 \begin{function}{OpenDir}
 \Declaration
 Function OpenDir (f:pchar) : pdir;
@@ -2429,6 +2482,95 @@ long.
 
 \FPCexample{ex62}
 
+\begin{procedure}{ReadPort}
+\Declaration
+Procedure ReadPort (Port : Longint; Var Value : Byte);
+Procedure ReadPort (Port : Longint; Var Value : Word);
+Procedure ReadPort (Port : Longint; Var Value : Longint);
+\Description
+\var{ReadPort} reads one Byte, Word or Longint from port \var{Port} into
+\var{Value}.
+
+Note that you need permission to read a port. This permission can be set by 
+the root user with the \seef{IOperm} call.
+\Errors
+In case of an error (not enough permissions read this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+
+\seef{IOperm}, \seep{ReadPortB}, \seep{ReadPortW}, \seep{ReadPortL},\seep{WritePort},
+\seep{WritePortB}, \seep{WritePortL}, \seep{WritePortW}
+\end{procedure}
+
+\begin{procedure}{ReadPortB}
+\Declaration
+Procedure ReadPortB (Port : Longint; Var Buf; Count: longint);
+Function  ReadPortB (Port : Longint): Byte;
+\Description
+The procedural form of \var{ReadPortB} reads \var{Count} bytes from port
+\var{Port} and stores them in \var{Buf}. There must be enough memory
+allocated at \var{Buf} to store \var{Count} bytes.
+
+The functional form of \var{ReadPortB} reads 1 byte from port \var{B}
+and returns the byte that was read.
+
+Note that you need permission to read a port. This permission can be set by 
+the root user with the \seef{IOperm} call.
+
+\Errors
+In case of an error (not enough permissions read this port), runtime 216 
+({\em Access Violation}) will occur.
+
+\SeeAlso
+\seef{IOperm}, \seep{ReadPort}, \seep{ReadPortW}, \seep{ReadPortL},\seep{WritePort},
+\seep{WritePortB}, \seep{WritePortL}, \seep{WritePortW}
+\end{procedure}
+
+\begin{procedure}{ReadPortL}
+\Declaration
+function  ReadPortL (Port : Longint): LongInt;
+Procedure ReadPortL (Port : Longint; Var Buf; Count: longint);
+\Description
+The procedural form of \var{ReadPortL} reads \var{Count} longints from port
+\var{Port} and stores them in \var{Buf}. There must be enough memory
+allocated at \var{Buf} to store \var{Count} Longints.
+
+The functional form of \var{ReadPortB} reads 1 longint from port \var{B}
+and returns the longint that was read.
+
+Note that you need permission to read a port. This permission can be set by 
+the root user with the \seef{IOperm} call.
+\Errors
+In case of an error (not enough permissions read this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{ReadPort}, \seep{ReadPortW}, \seep{ReadPortB},\seep{WritePort},
+\seep{WritePortB}, \seep{WritePortL}, \seep{WritePortW}
+\end{procedure}
+
+\begin{procedure}{ReadPortW}
+\Declaration
+Procedure ReadPortW (Port : Longint; Var Buf; Count: longint);
+function  ReadPortW (Port : Longint): Word;
+\Description
+The procedural form of \var{ReadPortB} reads \var{Count} words from port
+\var{Port} and stores them in \var{Buf}. There must be enough memory
+allocated at \var{Buf} to store \var{Count} words.
+
+The functional form of \var{ReadPortB} reads 1 word from port \var{B}
+and returns the word that was read.
+
+Note that you need permission to read a port. This permission can be set by 
+the root user with the \seef{IOperm} call.
+\Errors
+In case of an error (not enough permissions read this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{ReadPort}, \seep{ReadPortB}, \seep{ReadPortL},\seep{WritePort},
+\seep{WritePortB}, \seep{WritePortL}, \seep{WritePortW}
+\end{procedure}
+
+
 \begin{procedure}{ReadTimezoneFile}
 \Declaration
 procedure ReadTimezoneFile(fn:string);
@@ -2710,6 +2852,31 @@ The return value for Signal is the old signal handler, or nil on error.
 
 \FPCexample{ex58}
 
+\begin{function}{StringToPPchar}
+\Declaration
+Function StringToPPChar(Var S:STring):ppchar;
+\Description
+\var{StringToPPChar} splits the string \var{S} in words, replacing any
+whitespace with zero characters. It returns a pointer to an array of pchars
+that point to the first letters of the words in S. This array is terminated
+by a \var{Nil} pointer.
+
+The function does {\em not} add a zero character to the end of the string
+unless it ends on whitespace.
+
+The function reserves memory on the heap to store the array of \var{PChar};
+The caller is responsible for freeing this memory. 
+
+This function can be called to create arguments for the various \var{Exec}
+calls.
+\Errors
+None.
+\SeeAlso
+\seef{CreateShellArgV}, \seep{Execve}, \seep{Execv}
+\end{function}
+
+\FPCexample{ex70}
+
 \begin{function}{SymLink}
 \Declaration
 Function SymLink (OldPath,NewPath : pathstr) : Boolean;
@@ -3075,5 +3242,82 @@ Errors are returned in LinuxError.
 \SeeAlso
 \seef{Fork}, \seep{Execve}, \seem{waitpid}{2}
 \end{function}
-for an example, see \seef{Fork}.
+
+For an example, see \seef{Fork}.
+
+\begin{procedure}{WritePort}
+\Declaration
+Procedure WritePort (Port : Longint; Value : Byte);
+Procedure WritePort (Port : Longint; Value : Word);
+Procedure WritePort (Port : Longint; Value : Longint);
+\Description
+\var{WritePort} writes \var{Value} -- 1 byte, Word or longint -- 
+to port \var{Port}.
+
+Note: You need permission to write to a port. This permission can be set with root
+permission with the \var{IOperm} call.
+\Errors
+In case of an error (not enough permissions to write to this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{WritePortB}, \seep{WritePortL}, \seep{WritePortW},
+\seep{ReadPortB}, \seep{ReadPortL}, \seep{ReadPortW}
+\end{procedure}
+
+
+\begin{procedure}{WritePortB}
+\Declaration
+Procedure WritePortB (Port : Longint; Value : Byte);
+Procedure WritePortB (Port : Longint; Var Buf; Count: longint);
+\Description
+The first form of \var{WritePortB} writes 1 byte to port \var{Port}.
+The second form writes \var{Count} bytes from \var{Buf} to port \var{Port}.
+
+Note: You need permission to write to a port. This permission can be set with root
+permission with the \var{IOperm} call.
+\Errors
+In case of an error (not enough permissions to write to this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{WritePort}, \seep{WritePortL}, \seep{WritePortW},
+\seep{ReadPortB}, \seep{ReadPortL}, \seep{ReadPortW}
+\end{procedure}
+
+
+\begin{procedure}{WritePortL}
+\Declaration
+Procedure WritePortL (Port : Longint; Value : Longint);
+Procedure WritePortL (Port : Longint; Var Buf; Count: longint);
+\Description
+The first form of \var{WritePortB} writes 1 byte to port \var{Port}.
+The second form writes \var{Count} bytes from \var{Buf} to port \var{Port}.
+
+Note: You need permission to write to a port. This permission can be set with root
+permission with the \var{IOperm} call.
+\Errors
+In case of an error (not enough permissions to write to this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{WritePort}, \seep{WritePortB}, \seep{WritePortW},
+\seep{ReadPortB}, \seep{ReadPortL}, \seep{ReadPortW}
+\end{procedure}
+
+
+\begin{procedure}{WritePortW}
+\Declaration
+Procedure WritePortW (Port : Longint; Var Buf; Count: longint);
+Procedure WritePortW (Port : Longint; Value : Word);
+\Description
+The first form of \var{WritePortB} writes 1 byte to port \var{Port}.
+The second form writes \var{Count} bytes from \var{Buf} to port \var{Port}.
+
+Note: You need permission to write to a port. This permission can be set with root
+permission with the \var{IOperm} call.
+\Errors
+In case of an error (not enough permissions to write to this port), runtime 216 
+({\em Access Violation}) will occur.
+\SeeAlso
+\seef{IOperm}, \seep{WritePort}, \seep{WritePortL}, \seep{WritePortB},
+\seep{ReadPortB}, \seep{ReadPortL}, \seep{ReadPortW}
+\end{procedure}