So shall I understand that the filedescriptor is number of amount connections for particular process/program which will be used ? and its predefined ?
It's not a count of anything, it's just an arbitrary number assigned to that process when it opens a file. The kernel will recognize that number when you make a read() or write() call with it and respond accordingly.
By tradition, certain file numbers are expected to be open by default. stdin should be connected to some sort of input like keyboard or file, stdout should be connected to some sort of output like a screen or file, and stderr should either be connected to a terminal or to nothing. But this is just by tradition. The kernel really doesn't care.
A file pointer is what you get when you open a file with the stdio library. It's a structure that holds buffers and so forth, things that raw file descriptors don't have, but at the heart stdio still uses fd's, at least on UNIX sysems:
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)
Hi everybody,
i am newbie to unix and confused with file pointers and file descripters.
could anyone help me to clear my doubts ..
when we call unix system calls to create a file then we are dealing wih file descripters
i think file descripters are also normals file as stored inhard disks... (1 Reply)
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)
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)
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)
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)
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)
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
LEARN ABOUT OPENDARWIN
dup2
DUP(2) BSD System Calls Manual DUP(2)NAME
dup, dup2 -- duplicate an existing file descriptor
SYNOPSIS
#include <unistd.h>
int
dup(int oldd);
int
dup2(int oldd, int newd);
DESCRIPTION
Dup() duplicates an existing object descriptor and returns its value to the calling process (newd = dup(oldd)). The argument oldd is a small
non-negative integer index in the per-process descriptor table. The value must be less than the size of the table, which is returned by
getdtablesize(2). The new descriptor returned by the call is the lowest numbered descriptor currently not in use by the process.
The object referenced by the descriptor does not distinguish between oldd and newd in any way. Thus if newd and oldd are duplicate refer-
ences to an open file, read(2), write(2) and lseek(2) calls all move a single pointer into the file, and append mode, non-blocking I/O and
asynchronous I/O options are shared between the references. If a separate pointer into the file is desired, a different object reference to
the file must be obtained by issuing an additional open(2) call. The close-on-exec flag on the new file descriptor is unset.
In dup2(), the value of the new descriptor newd is specified. If this descriptor is already in use, the descriptor is first deallocated as
if a close(2) call had been done first.
RETURN VALUES
The value -1 is returned if an error occurs in either call. The external variable errno indicates the cause of the error.
ERRORS
Dup() and dup2() fail if:
[EBADF] Oldd or newd is not a valid active descriptor
[EMFILE] Too many descriptors are active.
SEE ALSO accept(2), open(2), close(2), fcntl(2), pipe(2), socket(2), socketpair(2), getdtablesize(2)STANDARDS
Dup() and dup2() are expected to conform to IEEE Std 1003.1-1988 (``POSIX.1'').
4th Berkeley Distribution June 4, 1993 4th Berkeley Distribution