From 7fd92949d0d8106062a19b6017e6fecc0d825bb2 Mon Sep 17 00:00:00 2001 From: Glenn L McGrath Date: Wed, 11 Apr 2001 03:11:33 +0000 Subject: Move unzip, gz_open, gz_close to libbb --- libbb/gz_open.c | 34 ++++++++++++++++++++++++++++++++++ 1 file changed, 34 insertions(+) create mode 100644 libbb/gz_open.c (limited to 'libbb/gz_open.c') diff --git a/libbb/gz_open.c b/libbb/gz_open.c new file mode 100644 index 000000000..1be5a171d --- /dev/null +++ b/libbb/gz_open.c @@ -0,0 +1,34 @@ +#include +#include +#include +#include +#include +#include +#include "libbb.h" + +extern int gz_open(FILE *compressed_file, int *pid) +{ + int unzip_pipe[2]; + + if (pipe(unzip_pipe)!=0) { + error_msg("pipe error"); + return(EXIT_FAILURE); + } + if ((*pid = fork()) == -1) { + error_msg("fork failured"); + return(EXIT_FAILURE); + } + if (*pid==0) { + /* child process */ + close(unzip_pipe[0]); + unzip(compressed_file, fdopen(unzip_pipe[1], "w")); + printf("finished unzipping\n"); + fflush(NULL); + fclose(compressed_file); + close(unzip_pipe[1]); + exit(EXIT_SUCCESS); + } + + close(unzip_pipe[1]); + return(unzip_pipe[0]); +} \ No newline at end of file -- cgit v1.2.3