error message when use fork with open file


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers error message when use fork with open file
# 1  
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...
# 2  
Old 02-27-2010
First off - writing a shell is essentially pointless unless this is a school assignment. We have a homework forum.

Next, consider that you can use a debugger to find the source line for your problem. Since you already made an effort to show your code, here is a little help --- recompile with -g, run your code, watch it puke, then use the debugger to read the core file.
gcc example:
Code:
gcc -g -o myshell myshell.c

next, after it segfaults:
Code:
gdb myshell core
appworx> gdb myshell core
GNU gdb 5.3
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB.  Type "show warranty" for details.
This GDB was configured as "sparc-sun-solaris2.9"...

Core was generated by `./myshell '.
Program terminated with signal 11, Segmentation fault.
#0  0x00000000 in ?? ()
(gdb) ba
#0  0x00000000 in ?? ()
#1  0x000111f8 in dt_arithmetic (fmt=0xffbfedf0 "+%s", d_value=0, sec=0, chg_tim=0) at add_time.c:150
#2  0x00011710 in process (p=0xffbff23e "0", ptr=0, fmtptr=0xffbfedf0 "+%s") at add_time.c:242
#3  0x0001191c in main (argc=4, argv=0xffbff064) at add_time.c:272
(gdb)

the ba (backtrace command) will show the last line of code in your C program before the problem ocurred.

I dummied this example display up. Obviously.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. 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

2. 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

3. 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

4. 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

5. 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

6. 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

7. UNIX for Dummies Questions & Answers

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

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

8. 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

9. 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

10. 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
Login or Register to Ask a Question