I have a process which is blocking on a write() system
call to a fifo (named pipe) which is read by another process.
Under what circumstances could this happen?
I am running SunOS (BSD) 4.1.3U1.
Thanks in advance,
If the fifo is not open for reading at all, then the write() will
generate a SIGPIPE (or if SIGPIPE is being ignored it will fail with
UniSoft Limited, London, England.
I need to write a c program that will perform like the cp command in UNIX
and copy one file to another. I need to use the UNIX system calls read(),
write(), open(), close(). I know how to open the source file for read access
and destination file for write access with open(), but I am unsure of how to
use read() and write().
I know read takes my file descriptor (fd) of the source file I opened as its
1st arguement. For the second, I need to put those bytes in some sort of
buffer right? Could I just write them directly to the destination file
instead of storing into a buffer? Well if I have to make a buffer for input
I read in I do this:
c = (char *) calloc(100, sizeof(char));
Is that right? If I do this will it work for all files whether they are
binary or ascii files?
The 3rd arg of read() takes in how many bytes to read, how do I tell it to
read in the entire source file?
So for read, this is what I have so far: read(fd, c, ????) where fd is my
source file descriptor and c as define above.
As for write, I have: write(fd2, ???, ???) where fd2 is the file descriptor
of my destination file. How do I specify it to write what I read from the
input source file and write all of those bytes inputted? Thanks for any