diff options
author | Stuart Cardall <developer@it-offshore.co.uk> | 2016-02-09 19:28:59 +0000 |
---|---|---|
committer | Natanael Copa <ncopa@alpinelinux.org> | 2016-04-05 20:06:53 +0000 |
commit | 40547008ecfc930b4fb0eb38312dc33f76ef238e (patch) | |
tree | 9944de15cf72bbfd020f2d0775a2a053ed06a0d8 /testing/mini-sendmail/sh.c | |
parent | beebea421572eb51cf861905dda69146d9ca797d (diff) | |
download | aports-40547008ecfc930b4fb0eb38312dc33f76ef238e.tar.bz2 aports-40547008ecfc930b4fb0eb38312dc33f76ef238e.tar.xz |
mini-sendmail: new aport
Diffstat (limited to 'testing/mini-sendmail/sh.c')
-rw-r--r-- | testing/mini-sendmail/sh.c | 30 |
1 files changed, 30 insertions, 0 deletions
diff --git a/testing/mini-sendmail/sh.c b/testing/mini-sendmail/sh.c new file mode 100644 index 0000000000..7feea6d7d1 --- /dev/null +++ b/testing/mini-sendmail/sh.c @@ -0,0 +1,30 @@ +#include <stdio.h> +#include <stdlib.h> +#include <string.h> +#include <unistd.h> + +#define MAXARG 64 + +int main( int argc, char* const argv[] ) { + char* args[ MAXARG ] = {}; + + if( argc < 3 || strcmp( argv[1], "-c" ) != 0 ) { + fprintf( stderr, "Usage: %s -c <cmd>\n", argv[0] ); + return 1; + } + + { + char* token; + int i = 0; + char* argStr = strdup( argv[2] ); + while( ( token = strsep( &argStr, " " ) ) != NULL ) { + if( token && strlen( token ) ) + args[ i++ ] = token; + if( i >= MAXARG ) + return 2; + } + } + + return execvp( args[0], args ); +} + |