Sponsored Content
Top Forums Programming When I am writing my own interpreter... Post 302142329 by matrixmadhan on Thursday 25th of October 2007 01:51:14 PM
Old 10-25-2007
Quote:
Originally Posted by Legend986
I was actually thiniking about one silly thing: when I'm creating multiple pipes, I need to create multiple file descriptors right? How would I do that? Just define a pool of unused file descriptors and use them only when I need them or is there any other way?

I tried defining using
int fd[4][2];

to get four pipes but it isn't working due to some obvious reason I guess... Any advice please?
This is a great attempt ! Smilie Smilie

If the file descriptors data type is defined as
int fd[4][2]; again you are imposing the limit on the number of processes that could be piped to each other.

( Or is that you are trying first with 'n' number of processes for piping where n <= 4 and then moving on to a more generic attempt )


##############

When replying to this thread I got this doubt, may be worth asking this along with this thread.

So basically pipe is a KDS - kernel data structure with its own memory capacity, therefore number of bytes that it can hold.

Take an example piping process like this

Code:
ls | wc -l

( assume ls runs over a million files and definitely has to take some 'n' number of seconds to complete that )

case 1 : Should wc process need to wait till lc flushes all the filenames to the ' | ' ?
case 2: Or as and when ' ls ' lists the filenames to the kernel data structure ' wc ' process would start using that information to count on the number of files.

What would be scenario if the information from process 1 ' ls ' overruns the capacity of the pipe data structure? Will the process 1 be signalled by the kernel to stop flushing data to pipe and at the same time process 2 signalled by the kernel to start using the data from the KDS so that process 1 can push in more information to the pipe data structure.

Is this how pumping information in to the pipe by process 1 and using the information by process 2 happens ?

Keep this thread alive, it is becoming more interesting Smilie
 

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
ATF-SH(1)						    BSD General Commands Manual 						 ATF-SH(1)

NAME
atf-sh [-s shell] -- interpreter for shell-based test programs SYNOPSIS
atf-sh script DESCRIPTION
atf-sh is an interpreter that runs the test program given in script after loading the atf-sh(3) library. atf-sh is not a real interpreter though: it is just a wrapper around the system-wide shell defined by ATF_SHELL. atf-sh executes the inter- preter, loads the atf-sh(3) library and then runs the script. You must consider atf-sh to be a POSIX shell by default and thus should not use any non-standard extensions. The following options are available: -s shell Specifies the shell to use instead of the value provided by ATF_SHELL. ENVIRONMENT
ATF_LIBEXECDIR Overrides the builtin directory where atf-sh is located. Should not be overridden other than for testing purposes. ATF_PKGDATADIR Overrides the builtin directory where libatf-sh.subr is located. Should not be overridden other than for testing purposes. ATF_SHELL Path to the system shell to be used in the generated scripts. Scripts must not rely on this variable being set to select a specific interpreter. EXAMPLES
Scripts using atf-sh(3) should start with: #! /usr/bin/env atf-sh Alternatively, if you want to explicitly choose a shell interpreter, you cannot rely on env(1) to find atf-sh. Instead, you have to hardcode the path to atf-sh in the script and then use the -s option afterwards as a single parameter: #! /path/to/bin/atf-sh -s/bin/bash ENVIRONMENT
ATF_SHELL Path to the system shell to be used in the generated scripts. SEE ALSO
atf-sh(3) BSD
September 27, 2014 BSD
All times are GMT -4. The time now is 09:55 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy