Sponsored Content
Full Discussion: [C] execl and pipes?
Top Forums Programming [C] execl and pipes? Post 302584763 by Corona688 on Sunday 25th of December 2011 12:04:48 PM
Old 12-25-2011
Quote:
Originally Posted by lamachejo
The data is sent as an argument to the Master program. The data are two ints, one bigger than other (ex: 1000 and 2000).
Your program will likely crash or malfunction, since argv[0] is traditionally the name of the program, and the argument after the last one you give execl must be null, so try this:

Code:
const char *arg="/path/to/program";
execl(arg, arg, "1", "2", NULL);

Quote:
The problem is, when I fork, I know the fd are inherited in that process, but once I call the slave program with execl, I don't know how to connect the two programs with a pipe.
They already are. The copies of the pipe you get in the child talk to the same pipe. They're already joined. Write in the child, read in the parent. There's nothing else to be done (except closing the write-end in the parent, anyway. Don't leave extra ends around, they cause your program to freeze)
This User Gave Thanks to Corona688 For This Post:
 

10 More Discussions You Might Find Interesting

1. Programming

execl, execv or execp

Hi! I'm writing a C program which gets from the command line a shell command (such as "ls" ) and I should execute it. My Q is: how can I send a command to the shell? I know I have to use one of the above functions, but I don't know how to use them. Thanks eyal (1 Reply)
Discussion started by: azran
1 Replies

2. Filesystems, Disks and Memory

PIPEs and Named PIPEs (FIFO) Buffer size

Hello! How I can increase or decrease predefined pipe buffer size? System FreeBSD 4.9 and RedHat Linux 9.0 Thanks! (1 Reply)
Discussion started by: Jus
1 Replies

3. Programming

execl / execv ?

Hi, Is it possible to run a program from my C program using only the full pathname? for example if I wanna call: "ls", so I whould have to use: execl("/bin/ls", "ls", NULL); Is it possible to do this using only: "/bin/ls" thanks (1 Reply)
Discussion started by: owijust
1 Replies

4. Programming

execl()

can anyone explain how to pass arguments of a program in execl function pls explain with a sample code. (2 Replies)
Discussion started by: bankpro
2 Replies

5. Shell Programming and Scripting

need help with execl command

I want to make simultanous sh commands in an exec command for example I want to counts the lines in a file wc -l my file.txt | awk -F" " '{print $1}'` works fine in sh but I want to implement it in a c code the first part works like this execl("/usr/bin/wc", "wc", "-l", "myfile.txt",... (1 Reply)
Discussion started by: walnut
1 Replies

6. Programming

execl function at GDB

Hi, we would appreciate if any one answer the below query. void main() { printf(“ I am in main\n”); execl(“/HOME/source/file2”,” /HOME/source/file2”,1,0); printf(“after execl\n”); } How to step the file2 source code in GDB. (2 Replies)
Discussion started by: RAMESHPRABUDASS
2 Replies

7. Programming

time execl

hello everybody how can i time the execution of execl() command inside my C code? for example, i wrote.. execl("md5sum","md5sum","myprog",NULL); i want to count the duration of the execl command! thanx in advance! (2 Replies)
Discussion started by: nicos
2 Replies

8. Red Hat

execl command

how to use find command in execl function, I used: execl("/usr/bin/find","find","~","-name","filename.c",0); but it shows find: ~ no file and directory i need to get the path of the file from the home .:wall: (2 Replies)
Discussion started by: Mahendravarma
2 Replies

9. Programming

When execl fails in C

when execl fails using the command lss, it doesnt go into the next line execl("/bin/sh", "/bin/sh", "-c", command, NULL); perror("execl failed"); exit(127); for some reason the child process just stops and also the parent process also stops so the line after the line that... (3 Replies)
Discussion started by: omega666
3 Replies

10. UNIX for Beginners Questions & Answers

Execl() command

Hi, If I write in a c file : execlp("date","date",NULL); printf("A\n"); And then run through the terminal would "A" be printed ? I understood that execlp will exit the program after it finished so the next lines of code won`t be executed afterwards.. Is that true ? (1 Reply)
Discussion started by: uniran
1 Replies
tels(7) 						 Miscellaneous Information Manual						   tels(7)

NAME
tels, telm - STREAMS Telnet slave (pseudo-terminal) driver, STREAMS Telnet master driver (used by telnetd only), respectively SYNOPSIS
DESCRIPTION
A Telnet pseudo-terminal consists of a tightly-coupled pair of character devices, called the master device and slave device. The master and slave device drivers work together to provide a Telnet connection on the server side where the master provides a connection to and the slave provides a terminal device special file access for the Telnet application processes, as depicted below: -------------------------- | Pseudo terminal functions| Application <--> |--------------------------| <--> telnetd Processes | Slave | Master | | (tels) | (telm) | -------------------------- The slave driver, with (STREAMS pty emulation module) and (STREAMS line discipline module) pushed on top (not shown for simplicity), pro- vides a terminal interface as described in termio(7). Whereas devices that provide the terminal interface described in termio(7) have a hardware device behind them; in contrast, the slave device has manipulating it through the master side of the Telnet pseudo terminal. There are no nodes in the file system for each individual master device. Rather, the master driver is set up as a STREAMS clone(7) driver with its major device number set to the major for the clone driver and its minor device number set to the major for the driver. The master driver is opened by telnetd using the open(2) system call with as the device file parameter. The clone open finds the next available minor number for the master device. The master device is available only if it and its corresponding slave device are not already opened. In order to use the STREAMS Telnet subsystem, a node for the master driver and N number of Telnet slave devices must be installed. The number of slave devices is set by a kernel tunable parameter called This can be modified using SAM; its default and minimum value is 60. The value of is the upper limit of the number of telnet sessions that can be opened. Multiple opens are allowed on the Telnet slave device. The master and slave drivers pass all STREAMS messages to their adjacent drivers. When the connection is closed from the Telnet client side, an message is sent to the corresponding slave device which will render that slave device unusable. The process on the slave side gets the errno when attempting a write(2) system call to the slave device file but it will be able to read any data remaining in the slave stream. Finally, when all the data has been read, the read(2) system call will return 0, indicating that the slave can no longer be used. AUTHOR
and were developed by HP. FILES
Streams Telnet master clone device Streams slave devices where N is the minor number of the slave device and 0 < N < SEE ALSO
insf(1M), open(2), ioctl(2), streamio(7), ldterm(7), telnetd(1M), ptem(7). tels(7)
All times are GMT -4. The time now is 02:32 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy