몽셀통통의 블로그

소켓프로그래밍 참고 사이트 및 내용 정리 (+과제 처리 사항 본문

IT/네트워크

소켓프로그래밍 참고 사이트 및 내용 정리 (+과제 처리 사항

몽통이 2017. 11. 20. 22:46

http://forum.falinux.com/zbxe/index.php?document_srl=441104&mid=C_LIB


제대로된 사이트를 하나 구했다


네트워크 소켓 프로그래밍 만드는거 넘 어렵다 ㅜㅜ


#include <fcntl.h>


열기 옵션

옵션 설명 

O_ RDONLY

읽기 전용으로 열기 

O_WRONLY 

쓰기 전용으로 열기 

O_RDWR 

읽기&쓰기 모두 



 옵션

설명 

O_CREAT 

해당 파일이 없으면 생성

접근 권한 값 추가 해야함 

파일이 이미 있어도 열기가 가능하고 쓰기를 하면 이전 내용이 사라짐

 O_EXCL

 O_CREAT를 사용할 때, 사용하면 이미 파일이 있을 때 open()되지 않음

O_TRUNC 

원래 파일 내용 삭제 

O_APPEND

추가하여 쓰기 가능하고 포인터가 파일의 끝에 위치 

O_NOCITTY 

??? 아직 모르겠음

O_NONBLOCK 

읽을 내용이 없을때 내용이 생길때 까지 기다리지 않고 복귀 

O_SYNC 

 쓰기를 할때, 실제 쓰기가 완료될때 까지 기다림



<이슈처리 사항> update 2017.11.23 과제 해결


- 왜 이상한 글씨가 나오는지

  : >" 이렇게 사용하면 오류 발생


- 스트링을 받고 끝에 '\0' 넣어줬는데 출력왜 안되냐

  :잘됌, 0으로도 쓰기 가능, 인덱스로 char 하나하나 적어줄때는 0 넣어야됌


- 왜 파일 입출력을 했을때 원래 파일이 손상되는지

  : 옵션 잘못 선택함. O_APPEND로 하면 이어서 쓸수 있음

  선택하는 옵션이 있는거 같은데 어떻게 하는거지

  :O_RDWR|O_APPEND로 사용하니 가능


- 포인터아니고 정수로 파일 입출력하고 있을때 어떻게 n 번째 줄을 없앨수 있는지

  : 그냥 지우고 싶은 줄 다음 줄 부터 받아쓰기함ㅠㅜ 


- 파일입출력 할때 정수로 선언하는 거랑 FILE로 선언하는거랑 무슨 차이 인지

  : 모름


- 소켓프로그래밍에서 파일에 쓰기 하는법

  write으로 쓰기 가능


- printf로 출력할땐 제대로 된 값나오다가 파일입출력으로 넣으면 왜 다른값 나오냐...

  : 함수로 재진입하면서 이전에 남았던 값들이 입력됨 ㅜㅜ memset으로 초기화