Sponsored Content
Full Discussion: fork() fd
Top Forums Programming fork() fd Post 16239 by Perderabo on Wednesday 27th of February 2002 08:16:53 AM
Old 02-27-2002
When you open() a file you create an entry in the system file table and you get an fd that points to that file table entry. The file table entry has an integer called the file pointer that indicates the next byte to be read or wriitten in the file. As you read the file, the file pointer gets updated.

When you duplicate an fd by any means such as dup(), fcntrl(), or even fork(), you get new fd's that point to the same file table entry.

If you want two file pointers to the same file, you must have two file table entries in which to store them. That means two open() calls.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Fork

What is a fork? Why would one create a fork? What are the advantages and disadvantages of using a fork? Please advise. Thank You. Deepali (5 Replies)
Discussion started by: Deepali
5 Replies

2. Programming

fork()

#include <stdio.h> #include <string.h> #include <sys/types.h> #define MAX_COUNT 200 #define BUF_SIZE 100 void main(void) { pid_t pid; int i; char buf; fork(); pid = getpid(); for (i = 1; i <= MAX_COUNT; i++) { sprintf(buf,... (2 Replies)
Discussion started by: MKSRaja
2 Replies

3. Programming

Fork or what?

Hello all. I'm developing a filetransfer application, which is supposed to work sort of like dcc, with multiple transfers etc. Now i wonder what the best way to manage the transfers is. Should i fork() for each new transfer, hogging loads of memory or use pthreads? Maybe I can use select to see... (0 Replies)
Discussion started by: crippe
0 Replies

4. Programming

Fork ()

hi all About this code for (i = 1; i < n; i++) if ((childpid = fork()) <= 0) break; I really can't understand the output . and the way fork () return the value . how about the process Id ,the child process Id and the parent ID in this case so please answer me soon (5 Replies)
Discussion started by: iwbasts
5 Replies

5. Programming

fork() help

Hi everybody, I wanna write a code to understand how fork works. my target -------------- -Parent creates a file(called temp) and writes into this file "1".Then it closes the file. -Then parent creates a child and wait until execution of this child ends. -Then child opens the same... (3 Replies)
Discussion started by: alexicopax
3 Replies

6. UNIX for Advanced & Expert Users

Fork and \n

Hi, I wrote a simple program for understanding the fork command. The code is as below int main(void) { fork(); printf("hi 1 \n"); fork(); printf("hi 2 \n"); fork(); printf("hi 3 \n"); } I am getting a variation in the number of times the printf is called if i remove the \n from each of... (1 Reply)
Discussion started by: xyz123456
1 Replies

7. Programming

Fork and \n

Hi, I wrote a simple program for understanding the fork command. The code is as below int main(void) { fork(); printf("hi 1 \n"); fork(); printf("hi 2 \n"); fork(); printf("hi 3 \n"); } I am getting a variation in the number of times the printf is called if i remove the \n from each... (2 Replies)
Discussion started by: xyz123456
2 Replies

8. Programming

Fork()

does fork() spawn only the parent process, what if fork() is looped, does it spawn the parent and the child? (4 Replies)
Discussion started by: Peevish
4 Replies

9. UNIX for Dummies Questions & Answers

fork()

I'm trying to run a simple test on how to use fork(), i'm able to execute the child process first then the parent, but how can I execute parent then child..? Thanks! (1 Reply)
Discussion started by: l flipboi l
1 Replies

10. Programming

Fork!

I understand that fork create a child but I need very simple example that make child useful.... I mean how will make the program faster anyone explain with code plz using C plz (2 Replies)
Discussion started by: fwrlfo
2 Replies
lsearch(3)						     Library Functions Manual							lsearch(3)

NAME
lsearch, lfind - Perform a linear search and update LIBRARY
Standard C Library (libc) SYNOPSIS
#include <search.h> void *lsearch( const void *key, void *base, size_t *nelp, size_t width, int (*compar) (const void *, const void *)); void *lfind( const void *key, const void *base, size_t *nelp, size_t width, int (*compar) (const void *, const void *)); STANDARDS
Interfaces documented on this reference page conform to industry standards as follows: lsearch(), lfind(): XSH5.0 Refer to the standards(5) reference page for more information about industry standards and associated tags. PARAMETERS
Points to an entry containing the key that specifies the entry to be searched for in the table. Points to the first entry in the table to be searched. Points to an integer that specifies the current number of entries in the table to be searched. This integer is incremented whenever an entry is added to the table. Specifies the size of each entry, in bytes. Points to the user-specified function to be used for comparing two table entries (strcmp(), for example). This function must return 0 (zero) when called with arguments that point to entries whose keys compare equal, and nonzero otherwise. DESCRIPTION
The lsearch() function performs a linear search of a table. This function returns a pointer into a table indicating where a specified key is located in the table. When the key is not found in the table, the function adds the key to the end of the table. Free space must be available at the end of the table, or other program information may be corrupted. The lfind() function is similar to the lsearch() function, except that when a key is not found in a table, the lfind() function does not add an entry for the key to the table. In this case, lfind() returns a null pointer. NOTES
[Tru64 UNIX] The lsearch() function is reentrant, but care should be taken to ensure that the function supplied as argument compar is also reentrant. The comparison function need not compare every byte; therefore, the table entries can contain arbitrary data in addition to the values undergoing comparison. RETURN VALUES
If an entry in the table matches the key, both the lsearch() and lfind() functions return a pointer to the entry's location in the table. Otherwise, the lfind() function returns a null pointer, and the lsearch() function returns a pointer to the location of the newly added ta- ble entry. RELATED INFORMATION
Functions: bsearch(3), hsearch(3), tsearch(3), qsort(3) Standards: standards(5) delim off lsearch(3)
All times are GMT -4. The time now is 12:24 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy