반응형
    
    
    
  250x250
    
    
  
                              Notice
                              
                          
                        
                          
                          
                            Recent Posts
                            
                        
                          
                          
                            Recent Comments
                            
                        
                          
                          
                            Link
                            
                        
                    | 일 | 월 | 화 | 수 | 목 | 금 | 토 | 
|---|---|---|---|---|---|---|
| 1 | 2 | 3 | 4 | |||
| 5 | 6 | 7 | 8 | 9 | 10 | 11 | 
| 12 | 13 | 14 | 15 | 16 | 17 | 18 | 
| 19 | 20 | 21 | 22 | 23 | 24 | 25 | 
| 26 | 27 | 28 | 29 | 30 | 31 | 
                            Tags
                            
                        
                          
                          - 이분 탐색
- 임의 정밀도 / 큰 수 연산
- 연결리스트 정렬
- KMP알고리즘
- 정수론
- 사칙연산
- 구현
- LeetCode 83번
- Queue
- 실패함수
- 해시를 사용한 집합과 맵
- 다이나믹 프로그래밍
- 유클리드 호제법
- 조합론
- LeetCode 83 c언어
- 정렬
- 문자열
- 재귀
- 연결리스트 중복제거
- 큐
- 프로그래머스
- 문자열제곱
- 시뮬레이션
- 스택
- 자료 구조
- 별 찍기
- LeetCode Remove Duplicates from Sorted List in c
- 큰 수 연산
- 브루트포스 알고리즘
- 수학
                            Archives
                            
                        
                          
                          - Today
- Total
hahn
[C] read() 본문
728x90
    
    
  반응형
    
    
    
  개요
과제 중에 read() 함수를 사용할 일이 있어 작성해본다.
내용
| read() 함수 내용 | |
| header | unistd.h | 
| prototype | ssize_t read(int fd, void *buf, size_t count); | 
| parameter | fd : 파일 디스크립터 void *buf : 파일을 읽어서 저장할 버퍼 count : 버퍼의 크기 | 
| return value (ssize_t) | 실패 : -1 성공 : 읽어들인 바이트 수 | 
예시
//ahnstu.txt
aaaaa
bbbbb
ccccc
ddddd
eeeee
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#define  BUFFER_SIZE   35
int main()
{
	char     buff[BUFFER_SIZE];
	int      fd;
	ssize_t  rd_size;
	fd = open( "./ahnstu.txt", O_RDONLY);
	rd_size = read(fd, buff, BUFFER_SIZE);
	buff[rd_size]  = '\0';
    puts(buff);
    close(fd);
}
#include <stdio.h>
#include <fcntl.h>
#include <unistd.h>
#define  BUFFER_SIZE   5
int main()
{
   char     buff[BUFFER_SIZE];
   int      fd;
   ssize_t  rd_size;
   if ( 0 < ( fd = open( "./ahnstu.txt", O_RDONLY)))
   {
      while( 0 < ( rd_size = read(fd, buff, BUFFER_SIZE)))
	  {
         buff[rd_size]  = '\0';
         puts(buff);
      }
      close(fd);
   }
}
aaaaa
bbb
bb
c
cccc
dddd
d
ee
eee이렇게 나오는 이유는 윈도우에서 개행이 \r\n으로 2바이트라고 한다.
728x90
    
    
  반응형
    
    
    
  '개발 공부 > C' 카테고리의 다른 글
| [C] size_t, ssize_t (0) | 2021.12.17 | 
|---|
