Man Linux: Main Page and Category List

NAME

       stCallEditor,  stCallCmd,  stCallCmdErrno, stFindProgram - call command
       processor with command string

SYNOPSIS

       #include <config.h>
       #include <sttk.h.h>

       int stCallEditor  (char  *editor,  char  *file,  char  *contents,  char
       **newcontents);

       int stCallCmd (char *commandProcessor, char *commandString);

       int stCallCmdErrno;

       char*stFindProgram (char *fileName)

DESCRIPTION

       stCallEditor  calls  editor  editor  with  file  file  and  returns its
       contents after the editor session in newcontents.  Return value is  the
       length  of  the  new  text.  On  failure, 0 is returned to indicate the
       error. Newcontents is not updated and points to nowhere. On  error  the
       file will be removed.  If contents points to a valid text, this text is
       put (not appended)  into  the  temporary  file  before  editor  starts.
       Contents must be NULL terminated, otherwise strange things will happen.

       stCallCmd invokes  commandProcessor  as  a  child  process  and  writes
       commandString  to  its  standard  input.  The current process waits for
       termination of the child process.  stCallCmd returns the exit status of
       the  child process reported by wait(2). The commandProcessor string may
       contain command line arguments to the command processor,  separated  by
       whitespace.   (This  is  necessary  for some programs to make them read
       commands from  standard  input.)   The  command  processor  program  is
       searched for in the directories given in the environment variable PATH.
       If commandString does not end with a newline, a newline is added.

       stFindProgram returns the full pathname of programName  if  program  is
       found and executable. Otherwise NULL.

ENVIRONMENT

       PATH   List   of   colon-separated  directoriy  names  where  execvp(3)
              searches    for    the    program    to     execute     (default
              /bin:/usr/bin:/usr/ucb).

SEE ALSO

       wait(2)

DIAGNOSTICS

       On  a  successful  call  stCallCmd returns the exit status of the child
       process. If an error occured, stCallCmd returns a  negative  number  as
       defined in sttk.h:

       CMDPROC_EMPTY
                     An   empty   or   NULL   string  has  been  supplied  for
                     commandProcessor.

       NO_MORE_CORE  A call to malloc(3) or calloc(3) returned a NULL pointer.

       FORK_FAILED   fork(2) could not create a child process.

       PIPE_FAILED   A call to pipe(2) failed.

       WAIT_ERROR    A call to wait(2) failed.

       EXEC_FAILED   execvp(3) could not execute commandProcessor.

       CHILD_KILLED  The child process was killed by an uncaught signal.

       WRITE_FAILED  write(2)  could not write commandString to the pipe. This
                     usually happens when commandProcessor does not  read  its
                     standard  input  and  terminates  before commandString is
                     written.

       NO_PROGRAM    commandProcessor could not be found.

       For the most  error  conditions  the  integer  variable  stCallCmdErrno
       (declared  in  sttk.h)  contains additional information about the error
       condition, usually the contents of errno(3) after a failed system call.
       In the case of CHILD_KILLED, stCallCmdErrno contains the statßus of the
       child process as reported by wait(2).

BUGS

       On systems  where  no  usable  vfork(2)  is  available,  the  value  of
       stCallCmdErrno does not make sense in case of EXEC_FAILED.

       Under IRIX stCallCmd sometimes (or always?) returns WAIT_ERROR where it
       should be EXEC_FAILED, NO_PROGRAM, or WRITE_FAILED.

AUTHORS

       Jürgen  Nickelsen  <nickel@cs.tu-berlin.de>  and  Andreas.Lampen@cs.tu-
       berlin.de