diff options
author | Ulrich Drepper <drepper@redhat.com> | 1998-08-04 17:22:28 +0000 |
---|---|---|
committer | Ulrich Drepper <drepper@redhat.com> | 1998-08-04 17:22:28 +0000 |
commit | 9fbffc467639130663cc1959a59eb980b9207210 (patch) | |
tree | 3952446509345d7c94f23d5269f764ec9a063b4a /db2/makedb.c | |
parent | d358336fe743642ee8b0400117777c24dc102987 (diff) | |
download | glibc-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.c | 11 |
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'"), |