728x90
반응형

프로그래밍/C 언어 14

access 함수

#include int access(const char *pathname, int mode);반환 값 성공 시 : 0 실페 시 : -1 이 함수는 프로세스가 지정한 파일이 존재하는지, 읽거나 쓰기나 실행이 가능한지를 확인하는 함수이다. 만일 지정한 파일이 심볼릭 링크라면 링크의 원본을 체크한다. 첫 번째 인자는 파일이나 디렉토리 전체 이름 두 번째 인자는 검사할 내용 mode R_OK : 읽기가 가능한가? W_OK : 쓰기가 가능한가? X_OK : 실행이 가능한가? F_OK : 파일이 존재하는가? #define R_OK 4 /* Test for read permission. */ #define W_OK 2 /* Test for write permission. */ #define X_OK 1 /* Test..

strlcat 함수

#include size_t strlcat(char *dst, const char *src, size_t size); 이 함수는 strcat 함수와 동일하다. 보안 목적을 위해 strcat 대신 사용할 목적으로 만들어졌다. dst의 기존 데이터에 src 데이터를 붙여 넣는다. size 만큼 여기서 중요한 건 size이다. size = dst 길이 + 붙일 데이터 길이 + NULL 값을 넣어야 한다. dst 길이보다 작으면 src 데이터가 넣어지진 않는다. 즉, size는 dst 길이 + NULL 길이보다 클 때부터 src 데이터가 들어간다. 예를 들어 dst의 길이가 5이고 src의 길이가 4이면 size의 길이가 4이면 dst 길이보다 작으므로 src 데이터가 들어가지 않는다. src 데이터를 넣으려면..

strlcpy 함수

#include size_t strlcpy(char *dst, const char *src, size_t size); 이 함수는 strcpy랑 똑같이 데이터를 복사하는 건데 보안 목적으로 strcpy를 대신할 함수로 만들어졌다. src에서 dst로 값을 복사하는데 size길이 만큼 한다. 여기서 size는 문자열 끝의 NULL 까지 포함한 길이를 넣어줘야한다. 만약 size에 1을 넣으면 dst에 NULL만 들어가있다. size에 2를 넣을 때부터 src 1바이트와 NULL이 dst에 들어가있다. 반환 값 이 값은 dst의 길이 값이다. 복사되어진 데이터의 길이이므로 NULL은 빠진다. size - 1 값이라고 생각하면 이해하기 편할 것이다.

728x90
반응형