home *** CD-ROM | disk | FTP | other *** search
- Path: sparky!uunet!usc!sdd.hp.com!uakari.primate.wisc.edu!hp9000.csc.cuhk.hk!a866700
- From: a866700@hp9000.csc.cuhk.hk (Wong Siu To)
- Newsgroups: comp.sys.hp
- Subject: Mkdir in fork
- Message-ID: <1992Jul30.105754.7370@hp9000.csc.cuhk.hk>
- Date: 30 Jul 92 10:57:54 GMT
- Organization: The Chinese University of Hong Kong
- Lines: 82
-
- Hi all,
-
- I'm using HP 720 running HP-UX 8.07. I tried to mkdir in a child
- process. It fails but returns with return code 0. Following a sample
- program (actually, it's extracted from a program in the public domain
- version of NQS) :
-
- --------------------------- test.c -------------------------------
- #include <stdio.h>
- #include <errno.h>
-
- extern int errno; /* System call error number */
- extern void sync(); /* Schedule system buffers for */
- /* writing */
- extern char *sys_errlist[]; /* Error list explanation */
-
- main ()
- {
- int childpid;
- char *path;
- char *argv [3]; /* Argv() to mkdir() */
- char *envp [1]; /* Envp() to mkdir() */
-
- path="/usr/spool/nqs/private/root/control/+++++0";
- childpid = fork();
- if (childpid == -1) {
- /*
- * The fork was not successful!
- */
- printf ("Utility [nqsmkdirs]: Unable to fork() ");
- printf ("mkdir process.\n");
- printf ("Utility [nqsmkdirs]: Reason: %s.\n",
- sys_errlist [errno]);
- printf ("Utility [nqsmkdirs]: Aborting.\n");
- fflush (stdout);
- fflush (stderr);
- sync(); /* Schedule all dirty system I/O */
- /* buffers for writing (so that */
- /* directory blocks refering to the */
- /* newly created files will be */
- /* securely written to disk */
- exit (6);
- }
- if (childpid == 0) {
- /*
- * We are the child mkdir process.
- */
- argv [0] = "-mkdir";
- argv [1] = path;
- argv [2] = (char *) 0;
- envp [0] = (char *) 0;
- /*
- * Create the named directory.
- */
- printf ("Utility [nqsmkdirs]: Creating: %s.\n",
- path);
- execve ("/bin/mkdir", argv, envp);
- /*
- * The execve() failed!
- */
- printf ("Utility [nqsmkdirs]: Unable to execve() ");
- printf ("mkdir program.\n");
- printf ("Utility [nqsmkdirs]: Reason: %s.\n",
- sys_errlist [errno]);
- printf ("Utility [nqsmkdirs]: Exiting.\n");
- fflush (stdout);
- fflush (stderr);
- }
- }
- --------------------------- end of test.c --------------------------
-
- Would anyone pls help ?
-
- Thanks in advance.
-
- Regards,
-
- --
- ----------------------------------------------------------------------------
- ST Wong BITNET: A866700@CUCSC.BITNET
- Computer Services Centre Internet: a866700@hp9000.csc.cuhk.hk
- The Chinese Univsersity of Hong Kong st@csc.mgate1.cuhk.hk
-