add directory study
This commit is contained in:
28
study/linux-travel/minix-386/estdio21.tar/estdio21/_rlbf.c
Normal file
28
study/linux-travel/minix-386/estdio21.tar/estdio21/_rlbf.c
Normal file
@@ -0,0 +1,28 @@
|
||||
/* _ r l b f */
|
||||
|
||||
/* This function provides line buffered read support. When reading
|
||||
* from a line buffered stream, it is necessary to discard any
|
||||
* readahead. This function is dynamically linked to __Zrlbf by
|
||||
* setvbuf to minimise code size when line buffered input is not
|
||||
* required.
|
||||
*
|
||||
* This function scans the input buffer and returns a shortened
|
||||
* buffer size. If no \n is found, the buffer size is returned.
|
||||
*/
|
||||
|
||||
#include "stdiolib.h"
|
||||
|
||||
/*LINTLIBRARY*/
|
||||
|
||||
__stdiosize_t __rlbf F2(register FILE *, fp, register __stdiosize_t, bytes)
|
||||
|
||||
{
|
||||
__stdiobuf_t *nlp; /* \n pointer */
|
||||
int offset; /* offset back to one past \n */
|
||||
|
||||
return ((nlp = (__stdiobuf_t *) MEMCHR(fp->__base, '\n', (size_t) bytes))
|
||||
!= NULL &&
|
||||
(offset = nlp - (fp->__base + bytes) + 1) != 0 &&
|
||||
lseek(fileno(fp), (off_t) offset, SEEK_CUR) != -1L)
|
||||
? bytes + offset : bytes;
|
||||
}
|
||||
Reference in New Issue
Block a user