The code you posted has a problem. But even if you solve that problem, there is another one. fork() dup()licates fd's from the parent but if you don't have some kind of synchronous read between the childs, you'll have unexpected results.
Do you really want to use multiple processes to read the same fd?
Try running this several times to see what I'm talking about:
Ok, I'm sure this is a total newbie question, but I think I'm in the right place, no?
I'm trying to call a perl module from a cgi script - Mail::Sendmail - and my web host installed the module in a directory that doesn't seem to be accessible, at least not the way I'm trying. But I thought you... (1 Reply)
I am trying to find a way to check the current status of a file. Such as some cron job processes are dependent on the completion of others. if a file is currently being accessed / modified or simply open state I will wait until it is done being processed before attempting the next process on that... (3 Replies)
Im working on writing a small operating system. I am currently working on implementing dup, dup2, pipe, and close and I need to implement some type of file descriptor table in my PCB.
I was wondering if there is anyone who is familiar with linux/unix implementation of these tables who could... (6 Replies)
Hello All,
Im opening a file desciptor in perl and sending data using print CMD "$xyz".
is there a limit to the length of the string that I can give to this CMD at a time. (3 Replies)
Hello,
How can i use file descriptor in a script to read 2 files at the same time and extract line 200 from file 1 and line 500 from file 2.
Thanks. (6 Replies)
Hello guys!
I had seen some posts at this forum talking about my problem, but maybe my scenario is a little different, and I want other solutions.
I saw users of this forums saying that the way to shared sockets is using UNIX Sockets, but this is the only way in my scenario?
My Scenario:... (4 Replies)
I am trying to write a script which will only show me the file descriptor count for a process/pid. My script will return me the count only not the whole output. For example, I would like my script to return the output 23 this case, not the whole output.
Can anybody please help me how do I get... (11 Replies)
Hi,
I am trying to read a file line-by-line in a while loop, and perform some tasks which involves non-interactive SSH to a remote server. The code looks something like this --
#!/usr/bin/ksh
export myFile=/path/to/my/file.load
while read line
do
do something
## Adding the SSH... (2 Replies)
Discussion started by: Subu1987
2 Replies
LEARN ABOUT PLAN9
srv
SRV(3) Library Functions Manual SRV(3)NAME
srv - server registry
SYNOPSIS
bind #s /srv
#s/service1
#s/service2
...
DESCRIPTION
The srv device provides a one-level directory holding already-open channels to services. In effect, srv is a bulletin board on which pro-
cesses may post open file descriptors to make them available to other processes.
To install a channel, create a new file such as /srv/myserv and then write a text string (suitable for strtoul; see atof(2)) giving the
file descriptor number of an open file. Any process may then open /srv/myserv to acquire another reference to the open file that was reg-
istered.
An entry in srv holds a reference to the associated file even if no process has the file open. Removing the file from /srv releases that
reference.
It is an error to write more than one number into a server file, or to create a file with a name that is already being used.
EXAMPLE
To drop one end of a pipe into /srv, that is, to create a named pipe:
int fd, p[2];
char buf[32];
pipe(p);
fd = create("/srv/namedpipe", 1, 0666);
sprint(buf, "%d", p[0]);
write(fd, buf, strlen(buf));
close(fd);
close(p[0]);
write(p[1], "hello", 5);
At this point, any process may open and read /srv/namedpipe to receive the hello string. Data written to /srv/namedpipe will be received
by executing
read(p[1], buf, sizeof buf);
in the above process.
SOURCE
/sys/src/9/port/devsrv.c
SRV(3)