12-02-2007
File Descriptor Table
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 explain to me a little about how they are implemented. I know basically how it works, what I am really having a little trouble with now is how file descriptors are mapped to input/output streams. Are their pointers to the pipe / device, or is there some other way its done? Thanks.
-shane
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
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)
Discussion started by: ftb
1 Replies
2. UNIX for Dummies Questions & Answers
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)
Discussion started by: Gary Dunn
3 Replies
3. UNIX for Dummies Questions & Answers
What is a file descriptor in Unix??
How to find a file descriptor of a file in Unix??
Does it have anything to do with the Inode numbers?? (3 Replies)
Discussion started by: rahulrathod
3 Replies
4. Programming
Hi,
look at the following code:
The client after estabilishing a connection with the server does the following:
if ((peter = fopen(argv, "r")) == NULL){
printf("errore\n");
exit(0);
}
... (11 Replies)
Discussion started by: teo
11 Replies
5. Programming
I have a requirement to close all the file descriptors from 3 to 1024 for a particular application.
Right now, this is how I do it ..
for ( int i = 3 ; i <= 1024; ++i )
close(i);
The change I am looking at is, I want to do away with the number 1024 and replace it with a constant which... (4 Replies)
Discussion started by: vino
4 Replies
6. Shell Programming and Scripting
I am trying to right a function which uses a file descriptor to write to a log file. The problem is that the on the print statement the file descriptor is called bad. Now when I first open the file and print to it in the f_open function by passing the descriptor to f_print_log all works well,... (6 Replies)
Discussion started by: robotball
6 Replies
7. Shell Programming and Scripting
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)
Discussion started by: rimser9
3 Replies
8. UNIX for Dummies Questions & Answers
Hi
What the below path contains?
/proc/<pid>/fd (1 Reply)
Discussion started by: siba.s.nayak
1 Replies
9. Shell Programming and Scripting
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)
Discussion started by: LiorAmitai
6 Replies
10. Shell Programming and Scripting
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
dup(2) System Calls Manual dup(2)
NAME
dup - duplicate an open file descriptor
SYNOPSIS
DESCRIPTION
fildes is a file descriptor obtained from a or system call. returns a new file descriptor having the following in common with the origi-
nal:
o Same open file (or pipe).
o Same file pointer (i.e., both file descriptors share one file pointer).
o Same access mode (read, write or read/write).
o Same file status flags (see fcntl(2),
The new file descriptor is set to remain open across system calls. See fcntl(2).
The file descriptor returned is the lowest one available.
RETURN VALUE
Upon successful completion, the file descriptor is returned as a non-negative integer. Otherwise, a value of -1 is returned and is set to
indicate the error.
ERRORS
fails if one or more of the following is true:
fildes is not a valid open file descriptor.
Request violates the maximum number of open file descriptors.
AUTHOR
was developed by AT&T and HP.
SEE ALSO
close(2), creat(2), dup2(2), exec(2), fcntl(2), open(2), pipe(2), privileges(5).
STANDARDS CONFORMANCE
dup(2)