/* low_open.c */
#include <stdio.h>
#include <unistd.h>
#include <sys/type.h>
#include <sys/stat.h>
#include <fcntl.h>
void error_handling(char *message);
int main(void)
{
int fildes;
char buf[] = "Let's go!\n";
/* data.txt라는 이름의 파일 생성 */
fildes = open("data.txt", O_CREAT|O_WRONLY|O_TRUNC);
if(fildes == -1)
error_handling("open() error!");
printf("생성 된 파일의 파일 디스크립터는 %d 입니다. \n", fildes);
/* 생성한 파일에 buf의 내용 전달 */
if(write(fildes, buf sizeof(buf)) == -1)
error_handling("wirte() error!");
close(fildes);
return 0;
}
void error_handling(char *message)
{
fputs(message, stderr); // fputs 표준 입출력함수.
fputc('\n', stderr); // fputc 표준 입출력 함수.
exit(1);
}
출력 결과 : 생성 된 파일의 파일 디스크립터는 3 입니다.
/* low_read.c */
#include <stdio.h>
#include <unistd.h>
#include <sys/type.h>
#include <sys/stat.h>
#include <fcntl.h>
#define BUFSIZE 100
void error_handling(char *message);
int main(void)
{
int fildes;
char buf[BUFSIZE];
/* data.txt라는 이름의 파일 오픈 */
fildes = open("data.txt", O_RDONLY);
if(fildes == -1)
error_handling("open() error!");
printf("오픈 한 파일의 파일 디스크립터는 %d 입니다. \n", fildes);
/* 파일에 존재하는 내용을 buf로 읽어 들인다. */
if(read(fildes, buf sizeof(buf)) == -1)
error_handling("read() error!");
printf("파일의 내용 : %s", buf);
close(fildes);
return 0;
}
void error_handling(char *message)
{
fputs(message, stderr);
fputc('\n', stderr);
exit(1);
}
출력 결과 : 오픈 한 파일의 파일 디스크립터는 3 입니다.
파일의 내용 : Let's go!
/* fd.seri.c */
#include <stdio.h>
#include <fcntl.h>
#include <sys/socket.h>
int main(void)
{
int fdes1, fdes2, fdes3;
fdes1 = socket(PF_INET, SOCK_STREAM, 0); // 소켓 생성
fdes2 = open("test.txt", O_CREAT); // 파일 생성
fdes3 = socket(PF_INET, SOCK_DGRAM, 0); // 소켓 생성
printf("첫 번째 파일 디스크립터 : %d\n", fdes1);
printf("두 번째 파일 디스크립터 : %d\n", fdes2);
printf("세 번째 파일 디스크립터 : %d\n", fdes3);
close(fdes1);
close(fdes2);
close(fdes3);
return 0;
}
출력 결과 : 첫 번째 파일 디스크립터 : 3
두 번째 파일 디스크립터 : 4
세 번째 파일 디스크립터 : 5
'[+] Information > [-] Network' 카테고리의 다른 글
[2009/05/26] 소켓의 생성과 프로토콜의 설정 (0) | 2009.05.26 |
---|---|
[2009/5/24] 윈도우즈 기반으로 구현하기 (0) | 2009.05.24 |
[2009/5/24] 파일의 조작 (0) | 2009.05.24 |
[2009/5/23] 네트워크 프로그래밍의 이해. (0) | 2009.05.23 |