본문 바로가기
C 언어

fwrite

by SpeeDr00t 2016. 7. 9.
반응형

size_t

fwrite(const void *buf, size_t size, size_t count, FILE *fp)


#include <stdio.h>
#include "local.h"
#include "fvwrite.h"

/*
 * Write `count' objects (each size `size') from memory to the given file.
 * Return the number of whole objects written.
 */
size_t
fwrite(const void *buf, size_t size, size_t count, FILE *fp)
{
	size_t n;
	struct __suio uio;
	struct __siov iov;

	iov.iov_base = (void *)buf;
	uio.uio_resid = iov.iov_len = n = count * size;
	uio.uio_iov = &iov;
	uio.uio_iovcnt = 1;

	/*
	 * The usual case is success (__sfvwrite returns 0);
	 * skip the divide if this happens, since divides are
	 * generally slow and since this occurs whenever size==0.
	 */
	if (__sfvwrite(fp, &uio) == 0)
		return (count);
	return ((n - uio.uio_resid) / size);
}
반응형

'C 언어' 카테고리의 다른 글

fgetc  (0) 2016.07.09
fgets  (0) 2016.07.09
putchar  (0) 2016.07.09
perror  (0) 2016.07.09
getchar  (0) 2016.07.09