|   
www.delorie.com/djgpp/doc/libc/libc_651.html
 | 
  
search  
 | 
libc.a reference
 redir_cmdline_parse 
 Syntax                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                     
|   | #include <debug/redir.h>
int  redir_cmdline_parse (const char *args, cmdline_t *cmd);
  | 
 Description                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                  
For the rationale and general description of the debugger redirection
issue, see redir_debug_init.
This function parses a command-line tail (i.e., without the program to
be invoked) passed as a string in args.  For every redirection
directive in args, like `>> foo', it opens the file that is
the target of the redirection, and records in cmd the information
about these redirections.  (See section redir_debug_init, for details of the
cmdline_t structure that is used to hold this information.)  The
command line with redirections removed is placed into
cmd->command (typically, it will be used to call
v2loadimage, see section v2loadimage), while the rest of information
is used by redir_to_child and redir_to_debugger to
redirect standard handles before and after calling run_child.
 Return Value                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                       
The function returns zero in case of success, -1 otherwise.  Failure
usually means some kind of syntax error, like `>' without a file
name following it; or a file name that isn't allowed by the underlying
OS, like `lost+found' on DOS.
 Portability                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                 
 Example                                                                                                                                                                                                                                                                                                             
|   |   /* Init command line storage.  */
  if (redir_debug_init (&child_cmd) == -1)
    fatal ("Cannot allocate redirection storage: not enough memory.\n");
  /* Parse the command line and create redirections.  */
  if (strpbrk (args, "<>"))
    {
      if (redir_cmdline_parse (args, &child_cmd) == 0)
	args = child_cmd.command;
      else
	error ("Syntax error in command line.");
    }
  else
    child_cmd.command = strdup (args);
  cmdline = (char *) alloca (strlen (args) + 4);
  cmdline[0] = strlen (args);
  strcpy (cmdline + 1, args);
  cmdline[strlen (args) + 1] = 13;
  if (v2loadimage (exec_file, cmdline, start_state))
    {
      printf ("Load failed for image %s\n", exec_file);
      exit (1);
    }
 |