DosSearchPath

DosSearchPath

#define INCL_DOSQUEUES

USHORT  rc = DosSearchPath(Control, PathRef, FileName, ResultBuffer,
                             ResultBufferLen);

USHORT           Control;         /* Function control vector */
PSZ              PathRef;         /* Search path reference string */
PSZ              FileName;        /* File name string */
PBYTE            ResultBuffer;    /* Search result buffer (returned) */
USHORT           ResultBufferLen; /* Search result buffer length */

USHORT           rc;              /* return code */

Example

The following example scans the environment segment for the PATH variable and prints its value. It then searches the path given by inserting the current directory into the value of the PATH variable for the file named "cmd.exe", and prints the full filename.

#define INCL_DOS

#include <os2.h>

#define ENVVARNAME            "PATH"       /* Environment variable name */
#define FILENAME              "cmd.exe"    /* File for which to search */
#define SEARCH_CUR_DIRECTORY  0x03         /* Search control - current
                                                     dir., */
                                           /*   then environment variable */

main()
{
  PSZ FAR   *ResultPointer;        /* Environment scan result pointer
                                       (returned) */
  BYTE      ResultBuffer[128];     /* Path search result
                                                 (returned) */
  USHORT    rc;                    /* return code */

  /** Scan environment segment for PATH; notice the far-string pointer **/
  /**   specification ("%Fs") used to print.                           **/

  if(!(rc=DosScanEnv(ENVVARNAME,        /* Environment variable name */
                     &ResultPointer)))  /* Scan result pointer
                                                (returned) */
    printf("%s is %Fs\n", ENVVARNAME, ResultPointer);

  /** Search current directory + PATH variable for "cmd.exe"   **/
  if(!(rc=DosSearchPath(SEARCH_CUR_DIRECTORY,    /* Search control
                                                           vector */
                        ENVVARNAME,              /* Search path reference
                                                     string */
                        FILENAME,                /* File name string */
                        ResultBuffer,            /* Search result
                                                     (returned) */
                        sizeof(ResultBuffer))))  /* Length of search
                                                     result */
    printf("Found desired file -- %s\n", ResultBuffer);
}


[Back: DosScanEnv]
[Next: DosSelectDisk]