Sponsored Content
Full Discussion: How to get fdes from FILE*
Top Forums Programming How to get fdes from FILE* Post 73484 by sumanthsharma on Thursday 2nd of June 2005 01:28:38 AM
Old 06-02-2005
Question How to get fdes from FILE*

The open() system call directly returns a fdes, whereas it's more portable 'ANSI C' counterpart fopen() returns a pointer the the FILE struct.

I have seen implementation of stdio.h on HP-UX, BSD and a few more, the typedef'd struct FILE stores the value of file descriptor in differenrt ways with diff attribute names.

In such a case how do i portably extract the file descriptor from a pointer to the FILE struct as returned by fopen?

Is there any such macro in C?

Even as i am concerned about portability I also need to excercise the power and granularity provided by system calls Smilie

F1, F1, F1 ......

Thanks in Advance,
Sumanth
 

3 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Match list of strings in File A and compare with File B, C and write to a output file in CSV format

Hi Friends, I'm a great fan of this forum... it has helped me tone my skills in shell scripting. I have a challenge here, which I'm sure you guys would help me in achieving... File A has a list of job ids and I need to compare this with the File B (*.log) and File C (extend *.log) and copy... (6 Replies)
Discussion started by: asnandhakumar
6 Replies

2. Shell Programming and Scripting

Compare 2 text file with 1 column in each file and write mismatch data to 3rd file

Hi, I need to compare 2 text files with around 60000 rows and 1 column. I need to compare these and write the mismatch data to 3rd file. File1 - file2 = file3 wc -l file1.txt 58112 wc -l file2.txt 55260 head -5 file1.txt 101214200123 101214700300 101250030067 101214100500... (10 Replies)
Discussion started by: Divya Nochiyil
10 Replies

3. Shell Programming and Scripting

Shell script (sh file) logic to compare contents of one file with another file and output to file

Shell script logic Hi I have 2 input files like with file 1 content as (file1) "BRGTEST-242" a.txt "BRGTEST-240" a.txt "BRGTEST-219" e.txt File 2 contents as fle(2) "BRGTEST-244" a.txt "BRGTEST-244" b.txt "BRGTEST-231" c.txt "BRGTEST-231" d.txt "BRGTEST-221" e.txt I want to get... (22 Replies)
Discussion started by: pottic
22 Replies
__fbufsize(3C)						   Standard C Library Functions 					    __fbufsize(3C)

NAME
__fbufsize, __flbf, __fpending, __fpurge, __freadable, __freading, __fsetlocking, __fwritable, __fwriting, _flushlbf - interfaces to stdio FILE structure SYNOPSIS
#include <stdio.h> #include <stdio_ext.h> size_t __fbufsiz(FILE *stream); int __flbf(FILE *stream); size_t __fpending(FILE *stream); void __fpurge(FILE *stream); int __freadable(FILE *stream); int __freading(FILE *stream); int __fsetlocking(FILE *stream, int type); int __fwritable(FILE *stream); int __fwriting(FILE *stream); void _flushlbf(void); DESCRIPTION
These functions provide portable access to the members of the stdio(3C) FILE structure. The __fbufsize() function returns in bytes the size of the buffer currently in use by the given stream. The __flbf() function returns non-zero if the stream is line-buffered. The __fpending function returns in bytes the amount of output pending on a stream. The __fpurge() function discards any pending buffered I/O on the stream. The __freadable() function returns non-zero if it is possible to read from a stream. The __freading() function returns non-zero if the file is open readonly, or if the last operation on the stream was a read operation such as fread(3C) or fgetc(3C). Otherwise it returns 0. The __fsetlocking() function allows the type of locking performed by stdio on a given stream to be controlled by the programmer. If type is FSETLOCKING_INTERNAL, stdio performs implicit locking around every operation on the given stream. This is the default system behavior on that stream. If type is FSETLOCKING_BYCALLER, stdio assumes that the caller is responsible for maintaining the integrity of the stream in the face of access by multiple threads. If there is only one thread accessing the stream, nothing further needs to be done. If multiple threads are accessing the stream, then the caller can use the flockfile(), funlockfile(), and ftrylockfile() functions described on the flockfile(3C) manual page to provide the appropriate locking. In both this and the case where type is FSETLOCKING_INTERNAL, __fsetlocking() returns the previous state of the stream. If type is FSETLOCKING_QUERY, __fsetlocking() returns the current state of the stream without changing it. The __fwritable() function returns non-zero if it is possible to write on a stream. The __fwriting() function returns non-zero if the file is open write-only or append-only, or if the last operation on the stream was a write operation such as fwrite(3C) or fputc(3C). Otherwise it returns 0. The _flushlbf() function flushes all line-buffered files. It is used when reading from a line-buffered file. USAGE
Although the contents of the stdio FILE structure have always been private to the stdio implementation, some applications have needed to obtain information about a stdio stream that was not accessible through a supported interface. These applications have resorted to access- ing fields of the FILE structure directly, rendering them possibly non-portable to new implementations of stdio, or more likely, preventing enhancements to stdio that would cause those applications to break. In the 64-bit environment, the FILE structure is opaque. The functions described here are provided as a means of obtaining the information that up to now has been retrieved directly from the FILE structure. Because they are based on the needs of existing applications (such as mh and emacs), they may be extended as other programs are ported. Although they may still be non-portable to other operating systems, they will be compatible from each Solaris release to the next. Interfaces that are more portable are under development. ATTRIBUTES
See attributes(5) for descriptions of the following attributes: +-----------------------------+-----------------------------+ | ATTRIBUTE TYPE | ATTRIBUTE VALUE | +-----------------------------+-----------------------------+ |MT-Level |__fsetlocking() is Unsafe; | | |all others are MT-Safe | +-----------------------------+-----------------------------+ |Interface Stability |Evolving | +-----------------------------+-----------------------------+ SEE ALSO
fgetc(3C), flockfile(3C), fputc(3C), fread(3C), fwrite(3C), stdio(3C), attributes(5) SunOS 5.11 5 Feb 1998 __fbufsize(3C)
All times are GMT -4. The time now is 08:14 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy