1
1

Adding lam_few(), A function which forks, exec's and waits

This commit was SVN r223.
Этот коммит содержится в:
Prabhanjan Kambadur 2004-01-10 21:18:25 +00:00
родитель ba4bdca6dd
Коммит 3dc60f27a2
3 изменённых файлов: 57 добавлений и 0 удалений

Просмотреть файл

@ -11,6 +11,7 @@ noinst_LTLIBRARIES = libutil.la
headers = \
argv.h \
few.h \
lam_log.h \
malloc.h \
path.h \
@ -20,6 +21,7 @@ headers = \
libutil_la_SOURCES = \
$(headers) \
argv.c \
few.c \
lam_log.c \
path.c \
reactor.c \

45
src/lam/util/few.c Обычный файл
Просмотреть файл

@ -0,0 +1,45 @@
/*
* $HEADER$
*/
#include <stdio.h>
#include <errno.h>
#include <sys/wait.h>
#include <stdlib.h>
#include <unistd.h>
#include "lam_config.h"
#include "lam/util/few.h"
/** @file **/
/**
* forks, execs and waits for a subordinate program
*
* @param argv Argument vector, argv[0] is the program
* @retval Status code or ERROR
* Returns: - status code or ERROR
*/
int
lam_few(char *argv[])
{
int status;
int pid;
int ret;
if ((pid = fork()) < 0) {
return(pid);
}
/* child */
else if (0 == pid) {
execvp(argv[0], argv);
exit(errno);
}
/* parent */
else {
while ((0 != waitpid(pid, &status, 0)) &&
(! WIFEXITED(status)) && (EINTR == errno));
}
return status;
}

10
src/lam/util/few.h Обычный файл
Просмотреть файл

@ -0,0 +1,10 @@
/*
* $HEADER$
*/
#ifndef LAM_FEW_H
#define LAM_FEW_H
int lam_few (char *argv[]);
#endif /* LAM_FEW_H */