본문으로 바로가기
homeimage

프로그래밍

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

    C언어 kill 시그널 전송 함수 kill()

    C함수 kill 시그널 전송 kill() kill() 함수는 쉘에서 프로세스를 죽이는 kill 명령과는 달리 프로세스에 시그널을 전송합니다. 물론, 프로세스에 SIGKILL을 보내면 쉘 명령의 kill과 같은 역활을 합니다. 헤더: signal.h 형태: int kill(pid_t pid, int sig) 인수: pid_t pid int sig 시그널 번호 반환: int 0 == 성공 -1 == 실패 kill() 함수는 특정 프로세스 뿐만 아니라 같은 그룹 ID가 같은 모든 프로세스에게 동시에 시그널을 전송할 수 있으며, 권한 안에 있는 모든 프로세스에게도 시그널을 전송할 수 있습니다. int kill(pid_t pid, int sig); 첫 번째 인수는 pids는 KILL 대상 프로세스 ID, 두 번째..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 시그널 처리 함수 sigaction()

    C함수 시그널 처리 sigaction() sigaction() 함수는 signal()보다 향상된 기능을 제공하는 시그널 처리를 결정하는 함수입니다. 헤더: signal.h 형태: int sigaction(int signum, const struct sigaction *act, struct sigaction *oldact) 인수: int signum 시그널 번호 struct sigaction *act 설정할 행동. 즉, 새롭게 지정할 처리 행동 struct sigaction *oldact 이전 행동, 이 함수를 호출하기 전에 지정된 행동 정보가 입력됩니다. 반환: int 0 == 성공, -1 == 실패 signal()에서는 처리할 행동 정보로 시그널이 발생하면 호출이될 함수 포인터를 넘겨 주었습니다. 그러..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 시그널 처리 방법을 설정 함수 signal()

    C함수 시그널 처리 방법을 설정 signal() 시그널 처리를 설정합니다. 헤더: signal.h 형태: void (*signal(int signum, void (*handler)(int)))(int) 인수: int signum 시그널 번호 void (*handler)(int)시그널을 처리할 핸들 반환: void *()(int) 이전에 설정된 시그널 핸들러 시그널 처리는 아래와 같이 설정할 수 있습니다. 즉, 어떤 시그널이 발생하면 기존 방법으로 처리할지 아니면 무시할지 프로그램에서 직접 처리할지를 설정할 수 있습니다. 설정하는 옵션은 3가지가 있습니다. 유형 의미 SIG_DFL 기존 방법을 따른다. SIG_IGN 시그널을 무시한다. 함수이름 시그널이 발생하면 지정된 함수를 호출한다. C언어 signal..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 지정한 시간만큼 대기 함수 sleep()

    C함수 지정한 시간만큼 대기 sleep() 지정한 시간 동안 대기 상태가 됩니다. 지정한 시간이 경과되었거나 시그널을 수신하면 대기에서 풀립니다. 인수로 받는 시간 값은 초 단위입니다. sleep() 함수 호출 후에 지정된 시간에 복귀되면 0을 반환합니다. 그러나 시그널 발생에 의해 복귀되었다면 남은 시간이 반환됩니다. 헤더: unistd.h 형태: unsigned int sleep( unsigned int seconds) 인수: unsigned int seconds 대기 시간 반환: unsigned int 남은 시간이 반환 C언어 sleep() 함수 예제 #include #include int main( void) { while( 1){ printf( "1초 마다 문자열 출력\n"); sleep( 1 ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 메모리를 특정 값으로 초기화 함수 memset()

    C함수 메모리를 특정 값으로 초기화 memset() malloc()이나 calloc()에서 할당 받은 메모리를 특정 값으로 초기화합니다. 보통 어떤 작업을 하기 전에 NULL로 초기화할 때 많이 사용합니다. 데이터를 읽어 들이거나 함수를 호출하기 전에 메모리를 초기화를 하는 것이 디버깅에 유리합니다. 헤더: string.h 형태: void *memset(void *s, int c, size_t n) 인수: void *ptr 메모리의 크기를 변경할 포인터 int c 초기화 값 size_t size 초기화 크기 반환: void * s에 대한 포인터를 반환하며 실패하면 NULL을 반환 C언어 memset() 함수 예제 #include #include #include int main( void) { char *..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 길이 만큼 문자열 비교 함수 strncmp()

    C함수 길이 만큼 문자열 비교 strncmp() strncmp()는 2개의 문자열을 2개의 문자열을 지정한 문자 개수까지만 비교합니다. 헤더: string.h 형태: char * strncmp( const char *s1, const char *s2, size_t n) 인수: char *s1 비교할 대상 문자열 char *s2 비교할 문자열 size_t n 비교할 문자의 개수 반환: 0 == 결과 값이면 s1 = s2 0 s2 0 > 결과 값이면 s1 < s2 C언어 strncmp() 함수 예제 #include #include int main( void) { char str_apple[] = "apple"; char str_apple2[] = " apple"; char str_b..
  • thumbnail
    컴퓨터/프로그래밍

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

    C함수 문자열 비교 strcmp() strcmp는 2개의 문자열을 비교하는 함수이며, 문자열의 길이가 크고 작음을 비교하는 것이 아니라 첫번재 문자부터 차례로 바이트의 크기를 비교합니다. 헤더: string.h 형태: char * strcmp( const char *s1, const char *s2) 인수: char *s1 비교할 대상 문자열 char *s2 비교할 문자열 반환: 0 == 결과 값이면 s1 = s2 0 s2 0 > 결과 값이면 s1 < s2 C언어 strcmp() 함수 예제 #include #include int main( void) { char str_apple[] = "apple"; char str_apple2[] = " apple"; char str_bana..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 길이를 지정하여 두 개의 문자열 합침 함수 strncat()

    C함수 길이를 지정하여 두 개의 문자열 합침 strncat() 2개의 문자열을 인수로 받아서 1개의 문자열로 합칩니다. 헤더: string.h 형태: char * strncat( char *dest, const char *src, size_t n) 인수: char *dest 연결될 문자열 char *src 붙여 넣기할 문자열 size_t sz src 문자열에서 붙여 넣기할 문자 개수 반환: 2개의 문자열을 합쳐진 문자열을 반환. 즉, 첫 번째 인수인 dest 포인터 strcat()와 마찬가지로 2개의 문자열을 인수로 받아서 1개의 문자열로 합칩니다. 차이라면 길이를 지정하여 복사할 2번째 문자열의 앞에서 몇 번째까지를 붙여 넣기 할지를 지정할 수 있습니다. 주의해야할 점 은 합쳐진 문자열은 새로운 메모리..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 두개의 문자열을 합침 함수 strcat()

    C함수 두개의 문자열을 합침 strcat() 2개의 문자열 인수를 받아서 1개의 문자열로 합칩니다. 주의해야할 점 은 합쳐진 문자열을 첫 번째 인수의 포인터 배열에 저장된다는 것입니다. 그러므로 첫 번째 인수의 포이터나 배열은 합쳐진 문자열 크기만큼 메모리를 확보해야 합니다. strcat()는 첫번째 인수의 메모리에서 '\0'을 찾아 그 부분부터 2번째 인수의 문자열을 복사하므로 주의해야 합니다. 헤더: string.h 형태: char * strcat( char *dest, const char *src) 인수: char *dest 연결될 문자열 char *src 복사할 문자열 반환: 2개의 문자열이 합쳐진 문자열 위치를 반환. 즉, 첫 번째 인수 문자열 포인터 C언어 strcat() 함수 예제 #incl..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 시그널 집합에 모든 시그널 정보 추가 함수 sigfillset()

    C함수 시그널 집합에 모든 시그널 정보 추가 sigfillset() sigemptyset() 함수는 시그널 집합 변수의 모든 내용을 삭제한다면, sigfillset() 함수는 시그널 집합 변수에 모든 시그널을 추가합니다. 헤더: signal.h 형태: int sigfillset(sigset_t *set) 인수: sigset_t *set 시그널 집합 변수 반환: 0 == 집합 변수에 모든 시그널 정보를 넣었음 -1 == 실패했음 리눅스에는 매우 다양한 시그널이 있습니다. 이 시그널을 하나씩 처리하거나 여러 개를 하나로 묶어서 한꺼번에 처리할 수 있습니다. 시그널 집합에 sigfillset(), sigemptyset(), sigaddset(), sigdelset()으로 시그널을 추가·삭제할 수 있으며 sig..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 시그널 집합에 시그널이 있는지 확인 함수 sigismember()

    C함수 시그널 집합에 시그널이 있는지 확인 sigismember() 시그널 집합 변수에서 지정한 시그널이 있는 확인합니다. 헤더: signal.h 형태: int sigismember(sigset_t *set, int signum) 인수: sigset_t *set 시그널 집합 변수 int signum 시그널 번호 반환: 1 == 집합에 시그널이 있음 0 == 집합에 시그널이 없음 -1 == 확인 실패 리눅스에는 매우 다양한 시그널이 있습니다. 이 시그널을 하나씩 처리하거나 여러 개를 하나로 묶어서 한꺼번에 처리할 수 있습니다. 시그널 집합에 sigfillset(), sigemptyset(), sigaddset(), sigdelset()으로 시그널을 추가·삭제할 수 있으며 sigismember()로 시그널 ..
  • thumbnail
    컴퓨터/프로그래밍

    C언어 시그널 집합에서 시그널을 제거 함수 sigdelset()

    C함수 시그널 집합에서 시그널을 제거 sigdelset() 시그널 집합 변수에서 지정한 시그널을 제거합니다. 헤더: signal.h 형태: int sigdelset(sigset_t *set, int signum) 인수: sigset_t *set 시그널 집합 변수 int signum 시그널 번호 반환: 0 == 집합 변수에서 성공적으로 제거했음 -1 == 실패했음 리눅스에는 매우 다양한 시그널이 있습니다. 이 시그널을 하나씩 처리하거나 여러 개를 하나로 묶어서 한꺼번에 처리할 수 있습니다. 시그널 집합에 sigfillset(), sigemptyset(), sigaddset(), sigdelset()으로 시그널을 추가·삭제할 수 있으며 sigismember()로 시그널 존재 여부를 확인할 수 있습니다. 그림..
    최근글
    이모티콘창 닫기
    울음
    안녕
    감사해요
    당황
    피폐

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