06-13-2003
Re: Re: I/O buffers
Quote:
Originally posted by jiangyanna
Do you mean when OS invoke printf(),it will invoke setbuf()? ![Confused Smilie](https://www.unix.com/images/smilies/confused.gif)
and does it mean that setbuf() will set a buffer flag to determine
if it is line-buffered or block-buffered?
No, it only mean that you can change default behaviour of I/O buffering.
After "printf" call, all data come in I/O buffer. In first case it is standard output (stdout) buffer, which is "line - buffered".
In another case it is file I/O buffer, which is "block - buffered".
I hope that answered your question.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
I 'm using RH 7.2 Genome in the Network Configuration I change therer are two places one for static hostname for my machine and in DNS hostname I don't know what happen when restarting my PC when connecting using dialer I can't browse the Internet also I can't use sendmail .......Server timeout... (2 Replies)
Discussion started by: atiato
2 Replies
2. UNIX for Dummies Questions & Answers
Hi,
Could someone please tell me what would happen if the following were entered into the command line:
rm -i /books/*.*
rm /books/*
Many thanks! (3 Replies)
Discussion started by: crispy
3 Replies
3. UNIX for Dummies Questions & Answers
Is it possible to set a task to happen in the future? Say I want to log-off only after 10 hours of being logged on with out doing any activity in between? (2 Replies)
Discussion started by: Slick
2 Replies
4. Programming
Dear
i do not understand that function used for clear screen (given below)
cls
{
union REGS i,o;
i.h.ah=6;
i.h.al=0;
i.h.ch=0;
i.h.cl=0;
i.h.dh=24;
i.h.dl=79;
i.h.bh=7;
int86(16,&i,&o);
}
In Above function Registers are used(i think) but why and internally what the do for clearing... (3 Replies)
Discussion started by: brain_full
3 Replies
5. UNIX for Advanced & Expert Users
I have an unix id (AIX system) which is used to run a couple of processes. They also write some log files into a file system (that is not in the home directory of the user id, but in different location).
One bad day, the id was deleted accidentally. But the home directory, files and everything... (1 Reply)
Discussion started by: cmgreat
1 Replies
6. Shell Programming and Scripting
how to extract files one by one from a directory and let some processing be done on the file
I have a directory by name INTRN which has files like
INTR.0003080248636814
INTR.0003080248636816
INTR.0003080248636818
.
.
.
.
and so on
and in a script... (5 Replies)
Discussion started by: saniya
5 Replies
7. UNIX for Dummies Questions & Answers
hi frndz
I wanna knw exatly what happen when we create new user...
which directories are created ??
which files are modified ??
thanx.... (2 Replies)
Discussion started by: luckypower
2 Replies
8. Programming
what would happen if a process wrote to its own stdin?
#include<unistd.h>
#include<fcntl.h>
int main()
{
if((write(STDIN_FILENO,"arrgh!",6))==-1)
{
perror("error writing to file");
}
}
output:
$ gcc temp.c
$ ./a.out
arrgh!$ (9 Replies)
Discussion started by: c_d
9 Replies
9. AIX
How does ITIL process is implemened in AIX? (6 Replies)
Discussion started by: AIXlearner
6 Replies
10. UNIX for Dummies Questions & Answers
Hello,
when im downloading an webpage from command line (CLI) by curl or wget the target website is loaded like i load it from browser? meaning target server connect to database and render data from mysql? Or only static content is downloaded? (2 Replies)
Discussion started by: postcd
2 Replies
LEARN ABOUT HPUX
setlinebuf
setbuf(3S) setbuf(3S)
NAME
setbuf(), setvbuf(), setlinebuf() - assign buffering to a stream file
SYNOPSIS
Obsolescent Interface
DESCRIPTION
can be used after a stream has been opened but before it is read or written. It causes the array pointed to by buf to be used instead of
an automatically allocated buffer. If buf is the NULL pointer input/output will be completely unbuffered.
A constant defined in the header file, tells how big an array is needed:
can be used after a stream has been opened but before it is read or written. type determines how stream is to be buffered. Legal values
for type (defined in are:
causes input/output to be fully buffered.
causes output to be line buffered;
the buffer will be flushed when a newline is written, the buffer is full, or input is requested.
causes input/output to be completely unbuffered.
When an output stream is unbuffered, information is queued for writing on the destination file or terminal as soon as written; when it is
buffered, many characters are saved up and written as a block. When the output stream is line-buffered, each line of output is queued for
writing on the destination terminal as soon as the line is completed (that is, as soon as a new-line character is written or terminal input
is requested). can also be used to explicitly write the buffer.
If buf is not the NULL pointer, the array it points to is used for buffering instead of an automatically allocated buffer (from size speci-
fies the size of the buffer to be used. The constant in is suggested as a good buffer size. If input/output is unbuffered, buf and size
are ignored.
By default, output to a terminal is line buffered and all other input/output is fully buffered.
is used to change stream from block-buffered or unbuffered to line-buffered. can be used any time the file descriptor is active.
Obsolescent Interface
assigns buffering to a stream file.
DIAGNOSTICS
If an illegal value for type or size is provided, return a non-zero value. Otherwise, the value returned will be zero.
Note
A common source of error is allocating buffer space as an "automatic" variable in a code block, then failing to close the stream in the
same block.
Allocating a buffer of size or bytes does not necessarily imply that all of size or bytes are used for the buffer area.
AUTHOR
and were developed by HP.
SEE ALSO
flockfile(3S), fopen(3S), getc(3S), malloc(3C), putc(3S), stdio(3S), thread_safety(5), glossary(9).
STANDARDS CONFORMANCE
setbuf(3S)