본문으로 바로가기
homeimage

c언어

해당되는 글 272
  • thumbnail
    컴퓨터/프로그래밍

    C언어 strnlen() 문자열 길이 구하기 함수

    C strnlen() 문자열 길이 구하기 함수 strnlen() C언어에서 문자열 길이를 구하는 함수에는 strlen()과 strnlen()이 있습니다. strlen()은 문자열만 인수로 받지만, strnlen()은 최대 길이까지 입력 받습니다. 이유는 인수로 받은 문자열 변수가 초기화가 안 되었고 NULL 문자가 없을 경우 실행 중 위험을 줄이기 위함입니다. 즉, strnlen()은 strlen()처럼 NULL까지의 길이를 찾되 특정 길이 이상은 검색하지 않도록 합니다. 헤더: string.h 형태: size_t strlen( const char *str, size_t maxlen) 인수: char *str 길이를 구할 문자열 size_t maxlen 길이를 구할 최대 길이 반환: 지정한 최대 길이 이..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 문자열에서 서식에 맞춘 변수 값 받기 sscanf()

    C sscanf() 문자열에서 서식에 맞춘 변수 값 받기 함수 문자열로부터 서식을 갖춘 데이터를 입력받습니다. 헤더: stdio.h 형태: int sscanf(const char *str, const char * format, ... ) 인수: char *str 문자열 char *format 서식 문자열 반환: int 입력된 항목 수를 반환하며, 오류가 발생하면 EOF를 반환 서식을 갖춘다는 것은 입력을 어떤 모양에 맞추어 입력을 받는다는 것입니다. 아래의 서식에 사용하는 변환 문자열을 참고하세요. 주의할 점은 서식에 맞추어 입력하질 못하면 다음 scanf까지 모두 에러가 발생하므로 조심하여야 합니다. 예제의 결과를 확인하세요. 변환 문자열 의미 %o 8진 정수 형식으로 입력 %d 10진 정수 형식으로 ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일 열기 함수 fopen()

    C fopen() 파일 열기 함수 C언어 함수 fopen()은 파일을 읽거나 쓰기를 하기 위해서 파일 열기를 합니다. 파일을 사용 후에는 fclose()로 닫습니다. 헤더: stdio.h 형태: FILE *fopen(const char *path, const char *mode) 인수: char *path 열고자하는 파일의 전체 이름 char *mode 파일 열기를 위한 옵션, 사용 형태 반환: FILE * 파일 포인터를 반화하며, 열기에 실패하면 NULL을 반환합니다. mode 상세 설명 mode 설명 "r" 읽기 전용. 파일이 반드시 있어야 합니다. "w" 쓰기 전용. 파일이 없으면 생성되고, 파일이 있다면 기존 내용은 지워집니다. "a" 내용 추가. 파일이 없으면 생성되고, 파일이 있다면 기존 내용..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일 읽기 함수 read()

    C read() 파일 읽기 함수 open() 함수로 열기한 파일의 내용을 읽기 합니다. 헤더: unistd.h 형태: ssize_t read (int fd, void *buf, size_t nbytes) 인수: int fd 파일 디스크립터 void *buf 파일을 읽어 들일 버퍼 size_t nbytes 퍼버의 크기 반환: ssize_t == -1 실패 > 0 정상적으로 실행되었다면 읽어들인 바이트 수 C언어 read() 함수 예제 예제에 사용할 test.txt 파일에는 아래와 같이 5바이트씩 문장이 입력되어 있습니다. 12345 ABCDE abcde 67890 표준 출력함수 fgets() 에는 버퍼가 크더라도 파일의 첫 번째 행만 읽어서 반환하지만 read()는 버퍼의 크기만큼 읽을 수 있다면 모두 읽..
  • thumbnail
    컴퓨터/프로그래밍

    undefined reference to symbol 'ceil@@GLIBC_2.4' 해결 방법은?

    undefined reference to symbol 'ceil@@GLIBC_2.4' 문제없던 소스 파일에 수학 함수를 추가했더니 컴파일 에러가 발생합니다. 그런데 처음 보는 메시지예요. undefined reference to symbol 'ceil@@GLIBC_2.4' 응? 뭐지? Makefile을 다른 분이 만들어 준 것을 사용하고 있는데요, 한 개의 파일이 아니라 여러 개로 나뉘어서 복작하게 구성되어 있네요. 그래서 어떤 문제가 있는지 쉽게 알 수 없었는데요, 자세히 보니 컴파일 에러가 아니라 링크 에러입니다. 그렇다면 ceil() 함수를 담고 있는 수학 함수 라이브러리가 빠쪘나 했지만, 그럴리가. 더욱이 바로 아래 행에 "gnueabi/lib/libm.so.6: error adding symbo..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 메모리를 0으로 채움 bzero() 함수

    C bzero() 메모리를 0으로 채움 함수 malloc()이나 calloc()에서 할당 받은 메모리 또는 배열, 구조체 변수의 메모리 영역을 0으로 채워서 초기화합니다. 데이터를 읽어 들이거나 함수를 호출하기 전에 메모리를 초기화를 하는 것이 디버깅에 유리합니다. 유사 함수로 memset()이 있으나 0으로 초기화는 bzero()가 더 간편합니다. 그러나 bzero()는 deprecated 함수이므로 memset()를 사용하는 것을 권합니다. 헤더: string.h 형태: void bzero(void *s, size_t n) 인수: void *ptr 메모리의 크기를 변경할 포인터 size_t size 초기화 크기 반환: - C언어 bzero() 함수 예제 #include #include #include..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 파일로 서식에 맞추어 문자열 출력 함수 dprintf()

    C dprintf() 파일로 서식에 맞추어 문자열 출력 함수 서식에 맞추어 파일로 출력합니다. 헤더: stdio.h 형태: int dprintf( int fd, const char *format, ...) 인수: int fd 파일 디스크립터 const char *format 출력할 데이터 서식 ... 서식에 맞춘 변수 나열 반환: int 출력된 문자 수를 반환하며 오류가 발생하면 음수를 반환합니다. 서실 변환 문자열 변환 문자열 의미 %o 8진 정수 형식으로 입력 %d 10진 정수 형식으로 입력 %ld long형 10진 정수 형식으로 입력 %x 16진 정수 형식으로 입력 %f float 형 형식으로 입력 %lf double 형 형식으로 입력 %c 문자 형식으로 입력 %s 문자열 형식으로 입력 서식 문자열..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 메모리 영역으로 크기만큼 서식에 맞추어 문자열 출력 함수 snprintf()

    C snprintf() 메모리 영역으로 크기만큼 서식에 맞추어 문자열 출력 함수 메모리 영역으로 서식에 맞추어 출력합니다. snprintf()는 매우 안전한 함수로 지정한 길이에 해당하는 위치에 반드시 NULL문자를 삽입해 줍니다. 즉, 버퍼 크기가 10이고 snprintf()에 버퍼 크기 10으로 요청하면 변환되는 문자열이 버퍼 크기보다 크다고 해도 9개의 문자를 입력해 준 다음 10번째에 NULL이 대입됩니다. 즉, 버퍼 크기를 정확히 알려주면 오버플로우가 발생하지 않습니다. 헤더: stdio.h 형태: int snprintf( char *s , size_t size, const char *format, ...) 인수: char *s 서식에 맞추어 저장할 메모리 영역의 포인터 size_t size 출..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 메모리 영역으로 서식에 맞추어 출력 sprintf()

    C sprintf() 메모리 영역으로 서식에 맞추어 출력 함수 메모리 영역으로 서식에 맞추어 출력합니다. 헤더: stdio.h 형태: int sprintf( const char s, const char *format, ...) 인수: char *s 서식에 맞추어 저장할 메모리 영역의 포인터 const char *format 출력할 데이터 서식 반환: int 출력된 문자 수를 반환하며 오류가 발생하면 음수를 반환합니다. 서실 변환 문자열 변환 문자열 의미 %o 8진 정수 형식으로 입력 %d 10진 정수 형식으로 입력 %ld long형 10진 정수 형식으로 입력 %x 16진 정수 형식으로 입력 %f float 형 형식으로 입력 %lf double 형 형식으로 입력 %c 문자 형식으로 입력 %s 문자열 형식으..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 이진트리 제거 함수 tdestroy()

    C tdestroy() 이진 트리 제거 함수 tdestroy()는 이진 트리 데이터를 제거 합니다. 헤더: #define _GNU_SOURCE #include 형태: void tdestroy(void *root, void (*free_node)(void *nodep)) 인수: void *rootp 이진 트리 포인터 void (*free_node)(void *nodep) 노드를 삭제하는 함수 포인터 반환: - tdestroy()는 glibc의 확장 기능으로 제공하는 함수이므로 _GNU_SOURCE 정의가 필요합니다. 프로그램 소스 상단에 아래의 문구를 삽입하세요. #define _GNU_SOURCE // 반드시 삽입 #include #include #include #include 선형 리스트와 이진트리 정..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 이진트리 삭제 함수 tdelete()

    C tdelete() 이진트리 삭제 함수 tdelete()는 이진 트리에서 데이터를 삭제합니다. 헤더: search.h 형태: void *tdelete(const void *key, void **rootp, int (*compar)(const void *, const void *)) 인수: const void *key 추가하려는 자료의 포인터 주소 void **rootp 이진 트리 포인터 int (*compar)(const void *, const void *) 두 노드를 비교하기 위한 함수 포인터 반환: - 선형 리스트와 이진트리 정렬된 테이블은 bsearch() 함수로 아주 빠르게 검색할 수 있으나 정렬되어 있지 않으면 제대로 검색할 수 없습니다. 그래서 새로운 자료를 등록할 때마다 계속 정렬해 주어..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 부모 프로세스 ID 구하기 함수 getppid()

    C함수 부모 프로세스 ID 구하기 getppid() 부모 프로세스의 ID를 구합니다. 헤더: sys/types.h,unistd.h 형태: pid_t getppid(void) 인수: - 반환: 이 함수는 항상 성공하며 부모 프로세스 ID를 반환합니다. 프로세스 ID 구하는 함수 종류 getpid() 실행 중인 프로세스 ID를 구합니다. getppid() 부모 프로세스의 ID를 구합니다. C언어 getppid() 함수 예제 #include #include int main() { int counter = 0; pid_t pid; printf( "저의 프로세스 ID는 %d 입니다.\n", getpid()); pid = fork(); switch( pid) { case -1 : printf( "자식 프로세스 생성..
    최근글
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

    이모티콘을 클릭하면 댓글창에 입력됩니다.