Sponsored Content
Top Forums UNIX for Dummies Questions & Answers error message when use fork with open file Post 302399112 by rosecomp on Friday 26th of February 2010 10:35:25 AM
Old 02-26-2010
error message when use fork with open file

I get this message when I write myshell.c program "VM pagefault:SIGSEGV bad add 0x0 err 0x4 nopage read myshell PM: ciredump signal 11 for 1725 /myshell memory fault (core dumped)"
Code:
/* RCS information: $Id: myshell.c,v 1.2 2006/04/05 22:46:33 elm Exp $ */
#include <stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <errno.h>
#include <string.h>
#include <fcntl.h>
extern char **getline();
/*Run command with and without arguments*/
void runc(const char *n, char *av[]){
 pid_t pid;
 int status;
 pid=fork();
 if (pid == 0) {
  /* Child */
         execvp(n,av);
                perror("You print wrong command");
  exit(-1);
 }
 else {
  /* Parent */
  wait(&status);
 }
}
void out(const char *n, char *av[]){
   int fd;
 fd = open("outf", O_WRONLY|O_CREAT); 
 if (fd < 0) {
  fprintf(stderr, "Couldn't open file for writing.\n");
 }
 dup2(fd, 1);
 /*execvp("ls",args);*/
 /*{execvp(n,av);}*/
 runc(n,av);
 close(fd);
}
int main() {
  int i;
  char **args; 
  pid_t pid;
  int status;

  while(1) {
    printf("$ ");
    args = getline();
    for(i = 0; args[i] != NULL; i++) {
      printf("Argument %d: %s\n", i, args[i]);
    }
  
 /*Exit command to terminate shell */
 if (strcmp(args[0],"exit")==0)
  exit();
 /*Run command with and without arguments*/
 /*{runc(args[0],args);*/
 out(args[0],args);
  }
 return 0;
}


Last edited by pludi; 02-26-2010 at 11:48 AM.. Reason: code tags, please...
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

PCC-F-NOERRFILE, unable to open error message file, facility PR2

I am trying to build a tuxedo server which in turn depends on several Pro*C programs. I am doing it on HP-UX system. It looks to me that the ORACLE_HOME is set properly. But I am getting error message when trying to build. PCC-F-NOERRFILE, unable to open error message file, facility PR2 exit... (1 Reply)
Discussion started by: asutoshch
1 Replies

2. Programming

Message Queue with fork() help

hi all... ive been trying this program where i spawn 4 threads... and i am trying to use message queue to send msgs from 3 of the threads to the parent thread... but it doent seem to be working... ive almost pulled out my hair tryin to fix the prob :confused: another wierd thing... (1 Reply)
Discussion started by: strider
1 Replies

3. Shell Programming and Scripting

Fishing out error message within a log file

Hi all, i have a log file that captures success or failure messges when i run a daily job. here is a sample of my log. 20060312 start successful successful failure failure 20060312 end i need to write a subroutine that opens up the log daily after my job completes to examine the log... (2 Replies)
Discussion started by: new2ss
2 Replies

4. UNIX for Dummies Questions & Answers

Open a file in VI and I get the message below:

@ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ @ (6 Replies)
Discussion started by: bobo
6 Replies

5. Solaris

Error Message: find: cannot open /: Stale NFS file handle

I am using the "find" command below and it respond with the error message " find: cannot open /: Stale NFS file handle" what does it mean? what can I do about it? Need advice, thanks. below are the command that I enter, the respond and the error message: root@ScripServer:/# find / -name... (1 Reply)
Discussion started by: ezsurf
1 Replies

6. Shell Programming and Scripting

PCC-F-NOERRFILE, unable to open error message file

Hi, I was compiling few C programs in the unix server and getting the following error message rm: /home/a0xxx28/AVT/SEEDLIBRARYDB/LIB/*.a non-existent proc MODE=ANSI CODE=ANSI_C INCLUDE=/home/a0xxx28/PVT/SEEDLIBRARYDB/INCLUDE INCLUDE=/home/a0xxx28/PVT/SEEDLIBRARY/INCLUDE ... (1 Reply)
Discussion started by: kavithakuttyk
1 Replies

7. Solaris

Can't open boot_archive error message

Hello guys, Thanks for all your precious tips. I hope you can give me some advice again. This time I am having an issue with a SUN FIRE V240 (SOLARIS 10). The server doesn't boot, normally , first we had a file system error ====================+FIRST ERROR... (6 Replies)
Discussion started by: feg
6 Replies

8. UNIX for Dummies Questions & Answers

Cp problems, file exists but error message

Basically, I want to copy all files (F03*) in this directory and merge/paste them into a new file (called SMER_2.03.12.SPU), yet the error message is "no such file or directory." I listed what is in my working directory, and the files do exist, so I'm not sure what's going on. The code's at the... (8 Replies)
Discussion started by: ucsdee
8 Replies

9. UNIX for Dummies Questions & Answers

Fork resource unavailable error, max # filehandles open?

I wrote a perl program that simultaneously reads in data from 691 tar.gz files using zcat. I can run one instance of the program without any issues and the memory and swap sizes are negligible. However, when I attempt to run more than 1 I start to get fork: resource unavailable messages. Are... (6 Replies)
Discussion started by: aquinom85
6 Replies

10. Shell Programming and Scripting

When trying to open file Message:-Terminal too wide?

Hi, I am trying to open small size file only in vi editor on solaris or Linux machine but it giving message "Terminal too wide" and then I have to come out. As shown below:- -rwxr-x--- 1 rkycadm rkycprd 2445 Sep 12 04:06 $ vi file.txt Terminal too wide :q! ----------... (2 Replies)
Discussion started by: RahulJoshi
2 Replies
vprintf(3S)															       vprintf(3S)

NAME
vprintf(), vfprintf(), vsprintf(), vsnprintf() - print formatted output of a varargs argument list SYNOPSIS
DESCRIPTION
and are the same as and respectively, except that instead of being called with a variable number of arguments, they are called with an argument list as defined by RETURN VALUE
Each function returns the number of bytes transmitted (excluding the null byte character in the case of or a negative value if an output error was encountered. By default, returns a negative value if maxsize is smaller than the number of characters formatted. In the UNIX 2003 standards environment (see standards(5)) it returns the number of bytes that would have been written to buffer s, excluding the terminating null byte, if maxsize had been sufficiently large. EXAMPLES
The following demonstrates how could be used to write an error routine: #include <stdarg.h> #include <stdio.h> . . . /* * error should be called using the form: * error(function_name, format, arg1, arg2...); */ /*VARARGS0*/ void error(va_alist) va_dcl { va_list args; char *fmt; va_start(args); /* print out name of function causing error */ (void)fprintf(stderr, "ERROR in %s: ", va_arg(args, char *)); fmt = va_arg(args, char *); /* print out remainder of message */ (void)vfprintf(stderr, fmt, args); va_end(args); (void)abort( ); } SEE ALSO
setlocale(3C), printf(3S), standards(5), thread_safety(5), varargs(5), glossary(9). STANDARDS CONFORMANCE
vprintf(3S)
All times are GMT -4. The time now is 10:42 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy