10-23-2002
fread will read data and place it into arrays that you allocate. The size and nitems tell fread how much space you allocated for it to work with. Without them, the data might overflow your buffer and clobber other data. This is the "buffer overflow" bug that hackers love to see in a program.
Yes, you can use gets(). There is no way to specify a length to gets. If it overflows your buffer, tough. But writing gets() the way it is was a big mistake. And if you use it, you too are making a big mistake.
9 More Discussions You Might Find Interesting
1. AIX
Hi:-
One of our users is getting an error: "There is no process to read data written to a pipe.”
I am trying to find out what the pipe buffer size is currently set to. How do I go about this?
Thanks, (0 Replies)
Discussion started by: janet
0 Replies
2. Red Hat
hi everyone,
can any one help change the buffer cache size in redhat and suse?? this error i got when i installed oracle 10g and it went well and when i try to mount the database using startup cmd it says too many buffer cache parameters (error code : ora-1034)
thnq in advance (0 Replies)
Discussion started by: gsr_kashyap
0 Replies
3. UNIX for Advanced & Expert Users
When I checked with top command, I found tht my buffers are always 137M, which means that they are sort of overloaded. My Inactive memory is 520M. Is it possible to increaase the buffer size and what would be the command for that? (0 Replies)
Discussion started by: ziabegg
0 Replies
4. UNIX for Dummies Questions & Answers
The "top" command shows that my buffer size is always at 137M, which I think has reached to the maximum. However, Ido have lots of Inative memory? Is it possible to increae the buffer size? and what is the command for that? Further, this is the buffer for writing to the hard disk? (3 Replies)
Discussion started by: ziabegg
3 Replies
5. Shell Programming and Scripting
Hi Group,
I am struggling to increase buffer size of expect,
sometimes after increasing the buffer size, expect captures all my expected output, sometimes not, :-(
I tried
match_max 700000
set expect_out(buffer) {}
Could anybody guide me for any solution.
HTH,... (1 Reply)
Discussion started by: jaduks
1 Replies
6. Programming
When fread is used twice, the second time it seems to overwrite the first time's output. Is there any way to clear fread's internal buffer after each use ?
char *FILEREAD(const char *FILENAME)
{
static char READBUFFER = "";
READBUFFER = '\0'; // try to solve the problem but this will not... (2 Replies)
Discussion started by: limmer
2 Replies
7. Shell Programming and Scripting
For the above one I am getting an error like Invalid buffer size ...Could some one help (3 Replies)
Discussion started by: infernalhell
3 Replies
8. UNIX for Dummies Questions & Answers
Hi,
I am using the below command to get the output in a file called "Logs.txt"
tail -f filename | egrep -i "cpu | hung " >> Logs.txt The problem is the Logs.txt file gets updated only after the buffer is 8Kb, but i want to update the file immediately and not wait for the buffer to get 8kb.
Is... (8 Replies)
Discussion started by: @bhi
8 Replies
9. Programming
Hi,
Can I find size of the file from size of the buffer written?
nbECRITS = fwrite(strstr(data->buffer, ";") + 1, sizeof(char), (data->buffsize) - LEN_NOM_FIC, fic_sortie);
Thank You :) (1 Reply)
Discussion started by: ezee
1 Replies
FREAD(3) BSD Library Functions Manual FREAD(3)
NAME
fread, fwrite -- binary stream input/output
LIBRARY
Standard C Library (libc, -lc)
SYNOPSIS
#include <stdio.h>
size_t
fread(void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
size_t
fwrite(const void *restrict ptr, size_t size, size_t nitems, FILE *restrict stream);
DESCRIPTION
The function fread() reads nitems objects, each size bytes long, from the stream pointed to by stream, storing them at the location given by
ptr.
The function fwrite() writes nitems objects, each size bytes long, to the stream pointed to by stream, obtaining them from the location given
by ptr.
RETURN VALUES
The functions fread() and fwrite() advance the file position indicator for the stream by the number of bytes read or written. They return
the number of objects read or written. If an error occurs, or the end-of-file is reached, the return value is a short object count (or
zero).
The function fread() does not distinguish between end-of-file and error; callers must use feof(3) and ferror(3) to determine which occurred.
The function fwrite() returns a value less than nitems only if a write error has occurred.
SEE ALSO
read(2), write(2)
STANDARDS
The functions fread() and fwrite() conform to ISO/IEC 9899:1990 (``ISO C90'').
BSD
March 8, 1994 BSD