From 9fbffc467639130663cc1959a59eb980b9207210 Mon Sep 17 00:00:00 2001 From: Ulrich Drepper Date: Tue, 4 Aug 1998 17:22:28 +0000 Subject: Update. 1998-08-04 16:53 Ulrich Drepper * stdio-common/tmpfile.c: Include unistd.h for close prototype. * stdio-common/tmpfile64.c: Likewise. * db2/makedb.c: Generate output file with same access permissions the input file has. * signal/signal.h: Pretty printing. 1998-08-04 Andreas Jaeger * misc/mktemp.c: Add include for prototype, remove unneccessary includes. * misc/mkstemp.c: Likewise. --- db2/makedb.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) (limited to 'db2/makedb.c') diff --git a/db2/makedb.c b/db2/makedb.c index d782103..d20befc 100644 --- a/db2/makedb.c +++ b/db2/makedb.c @@ -29,6 +29,7 @@ #include #include #include +#include /* Get libc version number. */ #include "../version.h" @@ -100,6 +101,7 @@ main (argc, argv) DB *db_file; int status; int remaining; + int mode = 0666; /* Set locale via LC_ALL. */ setlocale (LC_ALL, ""); @@ -157,15 +159,22 @@ main (argc, argv) input_file = stdin; else { + struct stat st; + input_file = fopen (input_name, "r"); if (input_file == NULL) error (EXIT_FAILURE, errno, gettext ("cannot open input file `%s'"), input_name); + + /* Get the access rights from the source file. The output file should + have the same. */ + if (fstat (fileno (input_file), &st) >= 0) + mode = st.st_mode & ACCESSPERMS; } /* Open output file. This must not be standard output so we don't handle "-" and "/dev/stdout" special. */ - db_file = dbopen (output_name, O_CREAT | O_RDWR | O_TRUNC, 0666, + db_file = dbopen (output_name, O_CREAT | O_RDWR | O_TRUNC, mode, DB_BTREE, NULL); if (db_file == NULL) error (EXIT_FAILURE, errno, gettext ("cannot open output file `%s'"), -- cgit v1.1