stdio.h vs unistd.h I/O


 
Thread Tools Search this Thread
Top Forums Programming stdio.h vs unistd.h I/O
# 1  
Old 09-13-2010
stdio.h vs unistd.h I/O

Hi guys.

To work with physical files, sockets, pipes, ... which library is good? stdio or unistd
stdio.h functions perform buffering and rationally should be better than unistd.h routines. but i am wondering why all UNIX programming books use unistd.h routines for almost all types of I/O operations?
# 2  
Old 09-13-2010
stdio.h and unistd.h are header files, not libraries. stdio.h is the header for stream/buffered I/O(like printf()). unistd.h is the header for the POSIX API(like read()). You probably see the use of low level functions like read() because the examples are working directly with file descriptors - ie: sockets. stream I/O uses file pointers. The choice to use buffered/non-buffered I/O depends on what the application is doing.
# 3  
Old 09-14-2010
so for which applications it is good to use buffered I/O and for which it is better to use unbuffered I/O?
# 4  
Old 09-14-2010
Quote:
Originally Posted by majid.merkava
so for which applications it is good to use buffered I/O and for which it is better to use unbuffered I/O?
As a general rule (and this is only my opinion) it's generally better to use the C standard library functions in stdio.h where you can (i.e. for file I/O) and then use the POSIX standard functions in unistd.h etc. when you need to do I/O on file descriptors for sockets and such.

Generally, you may as well try and use the most portable interfaces you can (i.e. stdio.h in this case).
This User Gave Thanks to JohnGraham For This Post:
# 5  
Old 09-14-2010
Thank you very much.
# 6  
Old 09-14-2010
Depends on your definition of "portable". The windows stdio implementation is awful.
This User Gave Thanks to Corona688 For This Post:
# 7  
Old 09-14-2010
Quote:
Originally Posted by Corona688
Depends on your definition of "portable". The windows stdio implementation is awful.
Yeah, but their unistd implementation just ain't there...
Login or Register to Ask a Question

Previous Thread | Next Thread

6 More Discussions You Might Find Interesting

1. Programming

C++ : is what the meaning of #include<stdio.h>?

Hello Guys, I'm new in programing line & just started from C++ programs but i don't know the meaning of #include<stdio.h> file....Guys tell me what's the working of this file in C++ program?? I'm confused... Title changed: Please use a descriptive subject text, and not C++?? (3 Replies)
Discussion started by: ggiwebsinfo
3 Replies

2. Programming

Ignoring the stdio.h file in a C file

I am facing a problem in the below given code. int main() { printf("\nHello Geeks\n\n") ; return 0 ; } In the above mentioned code i left including "#include ". And if i compile and execute this piece of code, the output is printed as expected. But "#include " being the most important... (7 Replies)
Discussion started by: Raj 89
7 Replies

3. Solaris

fatal error: stdio.h: No such file or directory

Trying to compile a C program recievin this hello.c:1:19: fatal error: stdio.h: No such file or directory gcc is installed on the system. echo $PATH /usr/bin:/usr/sbin:/usr/gcc/4.5/include/c++/4.5.2/tr1 root@Sol11swtb01:/media/NO NAME/Programming/C/Testing# cd... (2 Replies)
Discussion started by: Fingerz
2 Replies

4. Programming

stdio.h not found on Solaris 11

Hi friends, I hope u r doing well. I have just installed Solaris 11, and it seems that solaris 11 doesn't come with all the packages, one has to do everything manually. I download gcc from sunfreeware.com and installed it. After setting up the path variable, I tried to compile the hello world... (4 Replies)
Discussion started by: gabam
4 Replies

5. Programming

FILE structure - stdio.h

Hi All, I am new to linux and Programming. Inside the file stdio.h, there is a description about FILE structure. Which has many internal data members like _p, _r, _flags etc. I have written a sample code to find out the contents of the FILE structure. It opens a sample file ( FILE *fp ),... (5 Replies)
Discussion started by: nikunjbadjatya
5 Replies

6. Programming

Atomic Read and Write with stdio

hi guys. can we use fread and fwrite with pipes to write data more than PIPE_BUF atomically since they lock FILE object until I/O operation finish? (1 Reply)
Discussion started by: majid.merkava
1 Replies
Login or Register to Ask a Question