1.
아래에 주어진 프로그램이 수행하는 기능에 대하여 설명하시오. 또한, 버퍼 크기(BUFSIZE)가 성능(Performance)에 미치는 영향에 대하여 설명하시오.
#include
#include
#define BUFSIZE 2048
#define PERM 0744
int A_file (const char *name1, const char *name2)
{
int in, out; int numread; char buffer[BUFSIZE];
if ((in = open (name1, O_RDONLY)) == -1) return (-1);
if ((out = open(name2, O_WRONLY | O_CREAT | O_TRUNC, PERM)) == -1) {
close(in); return (-2);
}
while((numread = read(in, buffer, BUFSIZE)) > 0 ) {
if (write (out, buffer, numread) < numread ) {
close(in); close(out); return (-3);
}
}
close(in); close(out);
if (numread == -1) return (-4); else return (0);
}
main()
{
A_file("t.in","t.out");
}
참고 : #include 내에 포함된 내용
------------------------------------------------------
#define O_RDONLY 0 /* open read only */
#define O_WDONLY 1 /* open write only */
#define O_CREAT 00100 /* create file if it doesn't exist */
#define O_TRUNC 01000 /* truncate flag */
------------------------------------------------------