aboutsummaryrefslogtreecommitdiff
path: root/db2/makedb.c
diff options
context:
space:
mode:
authorUlrich Drepper <drepper@redhat.com>1998-08-04 17:22:28 +0000
committerUlrich Drepper <drepper@redhat.com>1998-08-04 17:22:28 +0000
commit9fbffc467639130663cc1959a59eb980b9207210 (patch)
tree3952446509345d7c94f23d5269f764ec9a063b4a /db2/makedb.c
parentd358336fe743642ee8b0400117777c24dc102987 (diff)
downloadglibc-9fbffc467639130663cc1959a59eb980b9207210.zip
glibc-9fbffc467639130663cc1959a59eb980b9207210.tar.gz
glibc-9fbffc467639130663cc1959a59eb980b9207210.tar.bz2
Update.
1998-08-04 16:53 Ulrich Drepper <drepper@cygnus.com> * 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 <aj@arthur.rhein-neckar.de> * misc/mktemp.c: Add include <stlib.h> for prototype, remove unneccessary includes. * misc/mkstemp.c: Likewise.
Diffstat (limited to 'db2/makedb.c')
-rw-r--r--db2/makedb.c11
1 files changed, 10 insertions, 1 deletions
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 <stdio.h>
#include <stdlib.h>
#include <string.h>
+#include <sys/stat.h>
/* 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'"),