2023. 3. 24. 14:40ㆍ_Study/Network
#0324 #네트워크프로그래밍
해당 자료는 강의 학습 자료입니다.
🐇¸.•*¨*•¸.•*¨*•¸.•*¨*•¸.•*¨*•
문자열 입력 함수 fgets() scanf()의 차이점 : 저장되는 길이가 다르다.
fgets()
- 공백 입력을 허용, 마지막 Enter입력 : 줄바꿈 문자('\n') + 널문자('\0')가 추가
따라서 string -1 을 해야 정확한 값을 가져올 수 있다.
scanf()
- 공백을 기준으로 입력이 분리됨
마지막, Enter입력: 줄바꿈 문자를 문자열에 포함시키지 않고 NULL문자('\0')만 문자열에 추가
파일의 끝(EOF) 표시
파일의 끝 표시 : Linux 시스템에는 파일에 저장된 데이터를 가지고 파일의 끝을 검사하지 않는다.
File system 에는 해당 파일의 길이를 저장
- 파일 내부에는 파일의 끝(EOF) 표시를 위한 special character는 없다.
- EOF를 사용하는 이유? - 함수에서 보통 사용해서, EOF이라는 것은 없고 (-1)일 뿐이다.
파일의 끝 감지
- read() 함수 : return 0(NULL)
- fgetc(), getc(), getchar() : return -1(EOF)
썸네일은 따로 정보가 들어간다. 작은 사진으로 격자형태로 저장되는데, 원래 파일의 길이를 보고 파일의 끝을 감지하여 가져오는 반면, 이러한 어떤 특수한 파일은 표준 문서와 연결되는 경우도 있다.
파일에 데이터 쓰기 : 배열의 크기를 지정하지 않는 경우
char buf[] = "hello world!\n";
이처럼 사이즈를 저장하지 않으면? : 자동으로 널 값('\0')이 추가
문자열의 길이만큼 배열을 사용한다면? : 크기만큼 저장이 된다.
여기서 OxOa 는 LF(NL line feed, new line)
문자열 보다 큰 크기의 배열을 사용하는 경우? : 나머지 부분이 NULL로 채워지거나, 초기화를 안한 다면 쓰레기 값이 들어갈 수 있음.
sizeof(buf)가 아닌, strlen(buf)를 이용하여 파일에 저장하는 경우 : 문자열의 크기로 저장하는 경우
정리
저장하는 방식에 따라서 NULL값이 추가가 될 수도 있다. EOF라는 special character는 없다.
NULL도 없고 오직 파일의 길이를 저장하여 길이를 이용하여 데이터를 읽는다.
단지 사용하는 함수에 따라서 return 값이 달라질뿐이다.
'_Study > Network' 카테고리의 다른 글
[컴퓨터망] Data comuunications (1) | 2023.04.15 |
---|---|
[컴퓨터망] Media Access Control(MAC) (0) | 2023.04.06 |
[Network] TCP 기반 서버 / 클라이언트 (0) | 2023.03.31 |
네트워크 프로그래밍과 소켓의 이해 #network (0) | 2023.03.30 |
[네트워크 프로그래밍] 주소체계와 데이터 정렬 ch.3 (2) | 2023.03.24 |