File Descriptor to File Name


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers File Descriptor to File Name
# 1  
Old 12-15-2005
File Descriptor to File Name

Is there a way to get the file name and/or path (in string form) from a file descriptor?

Last edited by lskuff; 12-16-2005 at 12:26 AM..
# 2  
Old 12-16-2005
Question please elaborate...

Smilie please elaborate your requirements and the platform on which you are working
# 3  
Old 12-16-2005
sorry, I am working on UNIX platform... the problem is that I use an open syscall to open up a file and I get the file descriptor as the return value... later on when I am doign I read I am computing a md5 checksum and storing the value in a file that is called something like filename.checksum..... The problem is that at the point of the read I don't know what the file name is, all I have is the file descriptor. As of now I have used fstat to get the i-node number and am storing the checksum in a file with the name = the i-node id number. ... however, I would instead like to name the checksum file filename.checksum... . know how to get the file name from the fd? thanks
# 4  
Old 12-16-2005
That is surprising. If you do not know the name of the file, then how are you using open() in the first place? And if at the point of the open() you have the filename, can't you use that?
# 5  
Old 12-16-2005
blowtorch has it right.

The file descriptor structure in memory does not have an actual name of a file in it.
Once you have a file open you can get some information about the file use lstat or fpathconf. Just not the file name. The reason is that the fd keeps track of files by inode number. If you translate and inode to a file name it will have disk device names
as part of the path. You referenced the file thru the filesystem - with a path and a name.

The other issue is: what do you want to do with the file name? You can do absolutely any defined file operation using the fd number.

If you need the path as you received it, then reference it with a global char * pointer.
# 6  
Old 12-16-2005
well I am making a dynamically linked library that adds a file system layer that adds some error check abilities... it interposes on all important file system related calls... I know that I have the name of the file in open, but a whole lot of file might be opened before any is read. When the file is read I only have the fd.... In the read() I want to open (if it exists) or create another file with the same name and just a different extension.

I guess from what you guys said the only way to do this is to create my own file table which is like a (very) large string array with each element = the file name and each index corresponding to a fd.

If this is the case I think I will just stick to my i-node naming because that has too much memory overhead. Thanks
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Variable File Descriptor

Greetings. I am happily using constructs like the following; I have set -x to show fine distinctions. $ exec 4> afile + exec + 4> afile $ print -u4 This is the first line in afileAs you can see from the -x expansion, the shell performed the exec command and redirected file descriptor to... (4 Replies)
Discussion started by: rpaskudniak
4 Replies

2. Shell Programming and Scripting

Help with File Descriptor in a While loop

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

3. Shell Programming and Scripting

file descriptor count

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)
Discussion started by: mohullah
11 Replies

4. Programming

Copying and overwriting a file using file descriptor

Hi , i have two basic requirement on linux platform . I am using C language to do this . 1) copying one file to another (assuming i know their file descriptors) 2) Overwriting a file using it file descriptor . Please guide. regards Aki (2 Replies)
Discussion started by: meet123321
2 Replies

5. UNIX for Dummies Questions & Answers

Difference between file descriptor and file pointer

hi...., can anyone tell me what is the exact difference between file descriptor and file pointer...... and why file descriptor takes integer value???:confused: (10 Replies)
Discussion started by: jimmyuk
10 Replies

6. UNIX for Dummies Questions & Answers

File Descriptor

Hi What the below path contains? /proc/<pid>/fd (1 Reply)
Discussion started by: siba.s.nayak
1 Replies

7. Shell Programming and Scripting

File Descriptor

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. Programming

Get the file descriptor of a socket file. C vs Python.

Hi, I want to validate that a file is a socket file on Linux. I know I can do this using the S_ISSOCK macro, but I am not sure how to get the file descriptor for the socket file. For example, I know that /tmp/mapping-foo is a socket file. In Python I can do something like this: >>> import... (2 Replies)
Discussion started by: goon12
2 Replies

9. UNIX for Dummies Questions & Answers

File Descriptor Help

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

10. UNIX for Dummies Questions & Answers

file activity (open/closed) file descriptor info using KORN shell scripting

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
Login or Register to Ask a Question