-rw-r--r-- | library/quickexec.cpp | 41 |
1 files changed, 41 insertions, 0 deletions
diff --git a/library/quickexec.cpp b/library/quickexec.cpp new file mode 100644 index 0000000..f3b5089 --- a/dev/null +++ b/library/quickexec.cpp @@ -0,0 +1,41 @@ +#include <stdio.h> +#include <sys/types.h> +#include <sys/stat.h> +#include <unistd.h> +#include <fcntl.h> + +#define QUICKEXEC "/tmp/.quickexec" + +int quickexecv( const char *path, const char *argv[] ) +{ + int fd = open( QUICKEXEC, O_WRONLY ); + if ( fd == -1 ) { + perror( "quickexec pipe" ); + return -1; + } + write( fd, path, strlen( path )+1 ); + const char **s = argv; + while( *s ) { + write( fd, *s, strlen( *s )+1 ); + ++s; + } + close(fd); + return 0; +} + +int quickexec( const char *path, const char *, ...) +{ + int fd = open( QUICKEXEC, O_WRONLY ); + if ( fd == -1 ) { + perror( "quickexec pipe" ); + return -1; + } + const char** s = &path; + do { + write( fd, *s, strlen( *s )+1 ); + } while ( *(++s) ); + + close( fd ); + + return 0; +} |