일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- C
- json
- Python
- FOR
- JavaScript
- Sync
- 영화
- Linux
- 리뷰
- package
- API
- tcp
- install
- Close
- windows
- write
- 책
- bitcoin
- go언어
- go
- GO 언어
- channel
- range
- c++
- File
- Callback
- mutex
- Golang
- window
- http
- Today
- Total
목록File (5)
Code Habit
Linux환경에서 개발한 프로그램이 크래시 났을 때 core 파일을 생성하여 gdb로 분석이 가능하다. 1. core 파일 생성 'ulimit -a' 명령으로 core 파일 생성 여부를 확인할 수 있다. 'core file size'가 0으로 설정되어 있다면 core 파일이 생성되지 않는다. 'ulimit -c unlimited' 명령으로 코어 파일을 생성할 수 있다. ( 'unlimited -c 0'으로 해제할 수도 있다. ) 2. core 파일 분석 프로그램이 죽으면 실행파일이 있는 경로에 core.xxxx 라는 파일이 생성될 것이다. 이를 gdb를 이용하여 디버깅할 수 있는데 다음 명령어들을 사용하면 된다. - file 'core.xxxx' : core 파일을 생성한 프로그램 정보를 출력한다. - ..
bufio 패키지는 buffered I/O를 구현하며 io.Reader, io.Writer 객체를 래핑한다. bufio를 사용하면 버퍼를 활용해 I/O의 부하를 줄일 수 있다. bufio.NewReader 함수를 이용해 파일이나 표준입력스트림 등에서 defaultBufSize만큼 읽어올 수 있다. func NewReader(rd io.Reader) *Reader { return NewReaderSize(rd, defaultBufSize) } ex) func ReadFile(filename string) (string, error) { file, err := os.Open(filename) if err != nil { return "", err } defer file.Close() rd := bufio.N..
파일을 I/O를 활용하여 리스트 정보(고객 명단 등)를 간단하게 로컬에 저장하고 읽고 싶을 때 fgets/fputs 함수를 사용하면 쉽게 구현할 수 있다. fputs 함수로 파일에 한줄 단위로 문자열을 저장하고 저장된 문자열을 줄별로 다시 fgets 함수로 읽어 들일 수 있다. 참고로 필자는 개발한 프로그래밍의 블랙리스트 명단을 로컬에 저장하고 읽어들이기 위해 위의 함수들을 활용하였다. 예제이다. 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 #include int main(void) { // 파일 쓰기모드 생성/열기 FILE *fp = fopen("test.txt", "w"); if (NULL == fp) { return -1; } fputs("1 line\n", fp); ..
golang에서 os 패키지를 사용해 파일 Read/Write를 편하게 할 수 있다. 다음은 사용되는 함수이다. func OpenFile(name string, flag int, perm FileMode)(file *File, err error) : 파일 플래그, 파일 모드를 지정하여 파일 열기 func (f* File) Close() error : 파일을 닫음 func (f* File) Write(b []byte) (n int, err error) : 파일에 값을 씀. 쓴 데이터의 길이와 에러 값 리턴 func (f* File) Read() (b []byte)(n int, err error) : 파일의 내용을 읽음. byte형식으로 기록되며 읽은 Count와 에러 값 리턴 사용 예제 // main.go..
개발을 하다보면 서버 로그를 남기거나 디버깅을 기록할 때 파일을 활용할 수 있다. 다음 함수들로 파일을 사용할 수 있다. 파일 열기 - mode에 따라 스트림과 파일을 연결하고 파일 포인터를 반환한다. FILE* fopen( const char* filename, const char* mode ); 파일 쓰기 - 파일 포인터로 연결된 스트림에 string 문자열을 쓴다. int fputs( const char *string, FILE* stream ); 파일 닫기 - fopen으로 획득한 유효한 파일포인터를 stream에 넘겨 파일을 닫는다. 스트림에 남은 버퍼를 플래시 하는 역할도 한다. int fclose( FILE* stream ); 예제 ) FILE* pfile = NULL; file = fope..