#include <unistd.h>
#include <errno.h>
{
int fd_to, fd_from;
char buf[4096];
ssize_t nread;
int saved_errno;
fd_from = open(from, O_RDONLY);
return -1;
goto out_error; /* goto를 쓰기 싫으면, if (fd_to >= 0) 프로세스로 형태로 처리 */
{
char *out_ptr = buf;
ssize_t nwritten;
do {
nwritten = write(fd_to, out_ptr, nread);
if (nwritten >= 0)
{
nread -= nwritten;
out_ptr += nwritten;
}
else if (errno != EINTR)
{
goto out_error;
}
} while (nread > 0);
}
{
if (close(fd_to) < 0)
{
fd_to = -1;
goto out_error;
}
close(fd_from);
}
saved_errno = errno;
close(fd_from);
close(fd_to);
return -1;
}
[출처] [NDK] 파일 복사 (안드로이드개발 카페 [개발자 커뮤니티]) |작성자 커피좋아
'C' 카테고리의 다른 글
C 언어로 단순 웨이브 파일을 만드는 소스 (0) | 2013.09.11 |
---|---|
초간단 리눅스 C 프로그래밍 hello.c (0) | 2013.07.10 |
MySql 백업 C 프로그램 (0) | 2013.03.11 |
C 언어 빠른 해시 함수 SuperFastHash (0) | 2012.10.23 |
C 언어 요일 알아내는 간단한 함수 (0) | 2011.03.27 |