분류 전체보기 90

[C언어] strlen 함수 (문자열 길이 확인 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열의 길이를 구하는데 사용한다. 헤더 #include ※ strlen 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 size_t strlen(const char* str); 파라미터 const char* str 길이를 구하려는 문자열을 입력한다. NULL 문자로 종료되는 문자열을 입력해야 한다. 반환값 (return) NULL 문자를 제외한 string 의 길이를 반환한다. 잡학지식 strlen 으로 byte array 의 길이를 구할때는 각별한 주의가 필요하다. NULL 문자로 종료가 안되는 경우도 다반사이기도 한데 byte array 에서 나..

C언어/string.h 2022.09.14
[C언어] strstr 함수 (문자열 검색 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용 가능한 표준 API 함수 기능 C언어 표준 함수로 문자열안에서 특정 문자열을 검색할 때 사용한다. 헤더 #include ※ strstr 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일 시 error 발생 ※ 함수 char* strstr(const char* str, const char* substr); 파라미터 const char* str 검색을 진행할 문자열을 입력한다. NULL 문자 (\0) 가 나올 때까지 str 의 내용을 검색한다. 반드시 유효한 주소값을 입력해야 하고 유효하지 않은 주소 입력 시 signal 이 발생한다. const char* substr str 문자열에서 검색하려는 sub string 을 입력한다...

C언어/string.h 2022.09.14
[C언어] 함수 호출 규약 (Calling Convention, cdecl, stdcall, fastcall)

함수 호출 규약 ? 함수 호출 시 필요한 인자를 어떤 방법으로 전달할지(전달받을지), 함수 종료 시 데이터를 어떤 방식으로 전달할지(전달받을지), 스택을 어떤 방법으로 정리할지 정의해놓은 규칙을 의미한다. C언어를 제법 사용한 개발자 중에서도 함수 호출 규약 (Calling Convention) 이라는 단어를 처음 보는 사람도 있을 것이다. 이를 정확하게 이해하려면 프로세스의 구조와 스택, 어셈블리 언어에 대한 이해가 필요하다. 하지만 위의 이해를 모두 설명하면 끝이 없으니, 심도 깊은 글은 나중에 시간이 된다면 정리해보는 거로 하고 이 글에서는 간략하게 설명해볼까 한다. 스택(Stack) ? 프로세스 실행 시 필요한 여러 데이터들은 메모리에 적재되는데 프로세스의 메모리 영역에는 스택이라는 부분이 있다...

[C언어] 포인터 오프셋 (pointer offset)

C언어를 사용하면 포인터를 사용해야하는 빈도가 굉장히 높다. (사실 매번 쓴다.) 포인터의 활용은 상당히 다양하고 범위가 넓지만 그중에서도 오프셋을 계산하는 주제를 다뤄보려 한다. 포인터의 오프셋 ? 이 글에서의 포인터 오프셋은 포인터를 움직이면서 계산하는 것을 의미한다. 이러한 방법은 네트워크에서의 가변 데이터(패킷)을 다루거나 buffer 에 데이터를 적재할때 흔히 사용한다. 그렇다면 아래 그림에서의 offset 의 값은 무엇일까 ? pointer 가 0 에서 12 로 이동했으니 offset = 12 라고 생각하기 쉽다. 당연히 12 만큼 주소를 이동했지만 실제 코드 구현에서는 12 가 정답이 아닐 수 있다. #include #define MAX_BUF_SIZE 128 int m..

[C언어] strcmp 함수 (문자열 비교 함수)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 문자열을 비교할때 사용한다. 헤더 #include ※ strcmp 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 int strcmp(const char* str1, const char* str2); 파라미터 const char* str1 비교할 첫번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. const char* str2 비교할 두번째 문자열을 입력한다. NULL 문자로 종료되는 문자열이 들어가는것이 좋다. 반환값 (return) -1 : string1 이 string2 보다 작은 경우 ( str1 < str2 ) 0..

C언어/string.h 2022.09.13
[Unix] 명령어 모음집 (ubuntu, linux, aix, hpux, sun, ...)

이 글은 계속해서 Update 합니다. (목적은 Unix 환경에서의 명령어 모음집이기 때문에 자세한 설명이 필요한 경우 Link 확인) ※ ${var} 의 경우 명령어가 아닌 특정 입력이 필요한 값을 의미합니다. (ex: ${PID} = process id 입력) UNIX 공통 명령어 COMMAND 설명 예시 cd 현재 작업중인 터미널의 경로를 변경 cd /usr/bin ls 현재 작업중인 디렉토리의 목록 확인 ls -lart vi 파일을 수정하는 편집기 실행 vi test.txt mv 파일 또는 디렉토리 위치 혹은 이름 변경 mv test1.txt /usr/local/test2.txt cp 파일 또는 디렉토리 복사 cp test test.backup chmod 파일 또는 디렉토리 권한 설정 chmod ..

[C언어] strcpy 함수 (문자열 복사, string copy)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 string 을 복사하는데 사용한다. strcpy 함수에서 string 의 끝을 판단하는 기준은 NULL 문자이다. (\0) 헤더 #include ※ 함수 사용시 string.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 char* strcpy(char* dest, const char* source); 파라미터 char* dest destination 의 약자로 복사한 문자열을 저장할 대상의 버퍼를 입력한다. 반드시 유효한 주소값을 입력해야하고 유효하지 않은 주소 입력시 signal 이 발생한다. const char* source dest 에 복사할 문자열을 입력한다. (반..

C언어/string.h 2022.09.09
[C언어] perror 함수 (stdio.h)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 errno 에 설정된 오류를 stderr 로 출력할때 사용한다. 헤더 #include ※ perror 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 void perror(const char* errmsg); 파라미터 const char* errmsg stderr 로 출력할 error message 를 입력한다. 반환값 (return) 없음 (void) 잡학지식 요즘은 errno 가 thread safe 하지만 전역변수를 사용한다는 점은 변하지 않았기 때문에 error 이후 또다른 error 발생시 해당 값들이 덮어씌워진다. 따라서 errno, ferr..

C언어/stdio.h 2022.09.06
[C언어] ferror 함수 (stdio.h)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 file 스트림에서 읽기 또는 쓰기 작업시 오류 발생 확인시 사용한다. 헤더 #include ※ ferror 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 int ferror(FILE* file); 파라미터 FILE* file fopen 함수를 통해 열린 file stream을 입력한다. 반환값 (return) File stream 오류가 없는 경우 0 을 반환한다. File stream 오류가 발생한 경우 0 이 아닌 값을 반환한다. #include #define MAX_BUF_SIZE 128 int main() { FILE *fp; char buf..

C언어/stdio.h 2022.09.05
[C언어] feof 함수 (stdio.h)

사용범위 Windows, Unix 등 모든 OS에서 사용가능한 표준 API 함수 기능 C언어 표준 함수로 파일의 끝 플래그가 설정됬는지 확인한다. 헤더 #include ※ feof 함수 사용시 stdio.h 파일을 include 하지 않는다면 컴파일시 error 발생 ※ 함수 int feof(FILE* file); 파라미터 FILE* file fopen 함수를 통해 열린 file stream을 입력한다. 반환값 EOF(-1) 설정시 0이 아닌 값을 반환한다. EOF(-1) 설정이 아닌 경우 0을 반환한다. 잡학지식 feof 함수는 보통 while 문과 함께 사용하며, 파일의 끝에 도달했는지를 확인할때 사용한다. 컴퓨터에서는 파일의 끝을 인지하기 위해서 End-of-File (EOF) 를 사용하는데 feo..

C언어/stdio.h 2022.09.04
반응형