Sponsored Content
Top Forums Programming When I am writing my own interpreter... Post 302142174 by Legend986 on Wednesday 24th of October 2007 11:01:06 PM
Old 10-25-2007
Hmm... I seem to be doing something wrong. Here's what I've been doing...

Code:
I'm creating a filedescriptor fd[2]
fork child1
if(pid1 == 0) {
        close(fd[1]); 
        setting fd[0] to STDIN_FILENO using dup2
         close(fd[0]);
        }
        execlp("wc","wc",(char *) 0);
    }
    else {
        fork child 2
        if(pid2 == 0) {
               close(fd[1]);  
               set fd[0] to STDIN_FILENO using dup2
               close(fd[0]);
               set fd[1] to STDOUT_FILENO using dup2
               close(fd[1]);
               execlp("wc","wc", (char *) 0);
        }
        else {
            //parent continues
            fork child 3
            if(pid3 == 0) {
                    close(fd[0]);
                    set fd[1] to STDOUT_FILENO using dup2
                    close(fd[1])
                    execlp("ls","-la", (char *) 0);
            }
        }

What I'm trying to do here is creating a two level pipe for the command: ls -la | wc | wc

It works upto one level but after that I'm getting an "dup2: Bad File Descriptor" error maybe because of the child 2... I'm not sure what mistake I'm doing... Any suggestions on how to get around this one?

Last edited by Legend986; 10-25-2007 at 12:08 AM..
 

7 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

an command interpreter

if somebody can help me pls. i need the source code for a shell which compiles C or java programs. i need a very short and simple one, just for the compiling part, in UNIX Respect (4 Replies)
Discussion started by: zlatan005
4 Replies

2. UNIX for Dummies Questions & Answers

m4 as script interpreter

#!/usr/bin/m4 when running m4 scripts with "#!/usr/bin/m4" they are executed properly, but "#!/usr/bin/m4" is printed out - how to avoid it? Thanks in advance. (5 Replies)
Discussion started by: Action
5 Replies

3. Programming

Java Interpreter

Hello guys - do you have any sample program implementing UNIX commands in an interpreter with Java? I can look up the simple ones such "ls" etc and then write my own commands. I would appreciate it. (2 Replies)
Discussion started by: cmontr
2 Replies

4. Shell Programming and Scripting

Multiple interpreter declarations

Hi, I am writing a shell script that connects to a remote server and performs some tasks on the server and exits. Since i am using a ssh connection, i am using a "expect" utility to supply the password automatically (which is present within the script). In order to use this utility, i need to... (3 Replies)
Discussion started by: sunrexstar
3 Replies

5. Shell Programming and Scripting

Bad Interpreter

Hi. My name is Caleb (a.k.a RagingNinja) form the whited00r forums. (Whited00r makes custom firmware for iOS devices). I have been learning and creating simple shells scripts. I have been recently using VIM for Windows or using VirtualBox to run the UBUNTU OS within VirtualBox to create my shell... (2 Replies)
Discussion started by: RagingNinja
2 Replies

6. Linux

interpreter files

Can you explain me what is ment by interpreter files ?? Why and how they are used?? (1 Reply)
Discussion started by: kkalyan
1 Replies

7. Shell Programming and Scripting

Dynamically choosing the interpreter

Hi, Is it possible to choose the inerpreter conditionally. For example, if whereis bash returns /usr/bin/bash then i need to choose #!/usr/bin/bash else i need to use #!/usr/bin/sh. Is it possible to achieve in a shell script? Thanks (1 Reply)
Discussion started by: pandeesh
1 Replies
binfmtcxx(1)							     binfmt_C							      binfmtcxx(1)

NAME
binfmtcxx-interpreter - binfmt_misc C++ handler SYNOPSIS
binfmtcxx-interpreter C++-source-file-name [command-line opions ...] DESCRIPTION
binfmtcxx-interpreter compiles a C++ source file specified on the command-line using C++ compiler, and executes the resulting file. It is designed to be used as a handler for binfmt_misc handler, which is a system used in Linux for handling arbitrary files as executa- bles. The command-line options are passed on to the compiled binary. FILE MAGIC
There is a requirement for C++ source files to have the magic characters /*BINFMTCXX: at the beginning of the file. That line also is used to specify the additional command-line options for C++ compiler. ENVIRONMENT
GXX The compiler used. The default is to use g++ CXX The compiler used, if GXX variable is not set. Will fall back to using GCC and CC BINFMTCTMPDIR Temporary directory used for binary and execution. Falls back to $TMPDIR $TEMPDIR or /tmp BINFMTC_DEBUG enables debug output if set. BINFMTCXX_GXX_OPTS Additional G++ options. Use BINFMTC_DEBUG to verify the options being passed on to g++. The default is -O0 -Wall -g AUTHOR
Junichi Uekawa (dancer@debian.org) Upstream page is available at http://www.netfort.gr.jp/~dancer/software/ SEE ALSO
binfmtasm-interpreter(1), binfmtc-interpreter(1), binfmtcxx-interpreter(1), binfmtf-interpreter(1), binfmtf95-interpreter(1), binfmtgcj- interpreter(1) binfmt_misc Dancer 2009 Feb 8 binfmtcxx(1)
All times are GMT -4. The time now is 05:40 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy