109 lines · 3.9 KB · TeX
RawDownload
\section{\module{msvcrt} --         Useful routines from the MS V\Cpp\ runtime} \declaremodule{builtin}{msvcrt}  \platform{Windows}\modulesynopsis{Miscellaneous useful routines from the MS V\Cpp\ runtime.}\sectionauthor{Fred L. Drake, Jr.}{fdrake@acm.org}  These functions provide access to some useful capabilities on Windowsplatforms.  Some higher-level modules use these functions to build the Windows implementations of their services.  For example, the\refmodule{getpass} module uses this in the implementation of the\function{getpass()} function. Further documentation on these functions can be found in the PlatformAPI documentation.  \subsection{File Operations \label{msvcrt-files}} \begin{funcdesc}{locking}{fd, mode, nbytes}  Lock part of a file based on file descriptor \var{fd} from the C  runtime.  Raises \exception{IOError} on failure.  The locked region  of the file extends from the current file position for \var{nbytes}  bytes, and may continue beyond the end of the file.  \var{mode} must  be one of the \constant{LK_\var{*}} constants listed below.  Multiple regions in a file may be locked at the same time, but may  not overlap.  Adjacent regions are not merged; they must be unlocked  individually.\end{funcdesc} \begin{datadesc}{LK_LOCK}\dataline{LK_RLCK}  Locks the specified bytes. If the bytes cannot be locked, the  program immediately tries again after 1 second.  If, after 10  attempts, the bytes cannot be locked, \exception{IOError} is  raised.\end{datadesc} \begin{datadesc}{LK_NBLCK}\dataline{LK_NBRLCK}  Locks the specified bytes. If the bytes cannot be locked,  \exception{IOError} is raised.\end{datadesc} \begin{datadesc}{LK_UNLCK}  Unlocks the specified bytes, which must have been previously locked. \end{datadesc} \begin{funcdesc}{setmode}{fd, flags}  Set the line-end translation mode for the file descriptor \var{fd}.  To set it to text mode, \var{flags} should be \constant{os.O_TEXT};  for binary, it should be \constant{os.O_BINARY}.\end{funcdesc} \begin{funcdesc}{open_osfhandle}{handle, flags}  Create a C runtime file descriptor from the file handle  \var{handle}.  The \var{flags} parameter should be a bit-wise OR of  \constant{os.O_APPEND}, \constant{os.O_RDONLY}, and  \constant{os.O_TEXT}.  The returned file descriptor may be used as a  parameter to \function{os.fdopen()} to create a file object.\end{funcdesc} \begin{funcdesc}{get_osfhandle}{fd}  Return the file handle for the file descriptor \var{fd}.  Raises  \exception{IOError} if \var{fd} is not recognized.\end{funcdesc}  \subsection{Console I/O \label{msvcrt-console}} \begin{funcdesc}{kbhit}{}  Return true if a keypress is waiting to be read.\end{funcdesc} \begin{funcdesc}{getch}{}  Read a keypress and return the resulting character.  Nothing is  echoed to the console.  This call will block if a keypress is not  already available, but will not wait for \kbd{Enter} to be pressed.  If the pressed key was a special function key, this will return  \code{'\e000'} or \code{'\e xe0'}; the next call will return the  keycode.  The \kbd{Control-C} keypress cannot be read with this  function.\end{funcdesc} \begin{funcdesc}{getche}{}  Similar to \function{getch()}, but the keypress will be echoed if it   represents a printable character.\end{funcdesc} \begin{funcdesc}{putch}{char}  Print the character \var{char} to the console without buffering.\end{funcdesc} \begin{funcdesc}{ungetch}{char}  Cause the character \var{char} to be ``pushed back'' into the  console buffer; it will be the next character read by  \function{getch()} or \function{getche()}.\end{funcdesc}  \subsection{Other Functions \label{msvcrt-other}} \begin{funcdesc}{heapmin}{}  Force the \cfunction{malloc()} heap to clean itself up and return  unused blocks to the operating system.  This only works on Windows  NT.  On failure, this raises \exception{IOError}.\end{funcdesc}