ADONE 코딩하기
[C언어] 코드 분석 중 발견한 함수들 본문
1. 알고 있었지만 잊고 있었던 지식
if 조건문에서 조건식을 참과 거짓으로 나누는 기준은 0 또는 0이 아닌 것으로 판단하는 것
if(0) ==> 거짓
if(1) ==> 참
if(2) ==> 참
if(1001) ==> 참
또
0뿐만 아니라 NULL값이 들어오면 거짓으로 판단한다.
if(NULL) ==> 거짓
if(not null value) ==> 참
2. fopen()
FILE *fopen(const char* fileName(Path), const char* fileMode)
첫번째 매개변수로 받은 파일을 가르키는 포인터를 반환하는 함수이다. (실패시 NULL반환)
두번째 매개변수로 r(read), w(write), a(append) 모드로 실행시킬 수 있고, r+ w+ a+ 처럼 +를 붙여서 읽기 쓰기 모두 가능하게 만들 수 있다.
또, rt wt at 처럼 t를 붙이면 text모드로 실행시키고 이것은 t를 붙이지 않는 실행과 같다. 마지막으로 rb wb ab처럼 b를 붙여 바이너리 모드로 실행시킬 수도 있다.
추가로 fclose() 함수는
int fclose(FILE* filePointer) 형식으로 fopen()함수로 받은 FILE* 변수를 매개변수로 받아 파일을 닫는다.
int 반환형으로 정상종료시 0, 에러시 -1(EOF)를 반환한다.
3. 작업경로 설정
system("pwd") 명령 사용시 현재 작업중에 있는 파일 경로를 출력할 수 있다.
결과 : /home/user1
작업경로를 변경하고 싶다면
#include <unistd.h>
char *path = "/home/user1/dir2";
chdir(path);
unistd.h 헤더파일에 있는 chdir(char *) 함수를 사용해서 변경할 수 있다. 매개변수로 char 포인터가 와야한다.
c 코드에서 시스템에 있는 파일, 디렉토리에 접근할 때 사용하는 함수들 정리한 것
stat구조체가 포함된 <sys/stat.h> 에 다양한 함수가 정리되어있다.
특히, 주로 사용하는 stat(char *path, struct stat *buf)는 path의 파일정보를 buf포인터 구조체의 내용에 삽입하는 역할을한다.
디렉토리 내의 파일은 한 가지 파일만 있는 것이 아닐 것이다. 여러가지 파일들에 대해서 정보를 서칭해야하는 상황이라면 readdir() 함수를 사용해서 첫번째 파일부터 순차적으로 파일 정보를 확인할 수 있다.
'C언어' 카테고리의 다른 글
[C언어] #include 정보 (0) | 2023.02.11 |
---|---|
[c언어] 리눅스 make 명령 (0) | 2023.02.04 |