Changeset - 529ca20aaaa5
[Not reviewed]
default
0 1 0
Nathan Brink (binki) - 17 years ago 2009-02-23 18:14:39
ohnobinki@ohnopublishing.net
execio: more api change to allow passing args to
1 file changed with 1 insertions and 1 deletions:
0 comments (0 inline, 0 general)
src/common/execio.h
Show inline comments
 
/*
 
  Copyright 2008 Nathan Phillip Brink, Ethan Zonca
 

	
 
  This file is a part of DistRen.
 

	
 
  DistRen is free software: you can redistribute it and/or modify
 
  it under the terms of the GNU Affero General Public License as published by
 
  the Free Software Foundation, either version 3 of the License, or
 
  (at your option) any later version.
 

	
 
  DistRen is distributed in the hope that it will be useful,
 
  but WITHOUT ANY WARRANTY; without even the implied warranty of
 
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 
  GNU Affero General Public License for more details.
 

	
 
  You should have received a copy of the GNU Affero General Public License
 
  along with DistRen.  If not, see <http://www.gnu.org/licenses/>.
 
*/
 

	
 
#ifndef _DISTREN_EXECIO_H
 
#define _DISTREN_EXECIO_H
 

	
 
/*
 
  This file tries to abstract away getting a socket/fd that talks to a spawned program
 
 */
 

	
 
#include <unistd.h>
 

	
 
enum execio_state
 
  {
 
    EXECIO_STATE_ERROR,
 
    EXECIO_STATE_EOF
 
  };
 
  
 

	
 
struct execio
 
{
 
  int pipe_write;
 
  int pipe_read;
 
  
 
  pid_t child;
 
};
 

	
 
/* nonzsero return on error */
 
int execio_open(const char *spec, struct execio **eio);
 
int execio_open(struct execio **rem, const char *progname, char *cont argv[]);
 

	
 
/* 
 
   blocks, 
 
   returns 0 if len is 0. Otherwise, only returns 0 on error/EOF: use execio_state() to determine
 
*/
 
size_t execio_read(struct execio *eio, void *buf, size_t len);
 
size_t execio_write(struct execio *eio, void *buf, size_t len);
 

	
 
enum execio_state execio_state(struct execio *eio);
 

	
 
/* nonzero return on error */
 
int execio_close(struct execio *eio);
 

	
 
#endif
 

	
0 comments (0 inline, 0 general)