전체 글 238

strchr 함수 예제

strchr() 함수는 문자열에서 특정문자의 시작 포인터를 알려주는 함수 NAME strchr, strrchr, strchrnul - locate character in string SYNOPSIS #include char *strchr(const char *s, int c); char *strrchr(const char *s, int c); #define _GNU_SOURCE #include char *strchrnul(const char *s, int c); 의외로 유용하게 쓰일곳이 많을 것 같다. 예제 소스코드를 보면 아래와 같다. 입력하는 문자열은 august wednesday 인데 이중에서 w 문자열을 찾으면 거기의 포인터를 가져온다. 따라서 아래의 코드를 돌려보면 wednesday가 결과로 나..

엔지니어 2012.08.14

strdup 함수 예제

strdup()함수는 입력받은 문자열을 복사한 새로운 문자열 포인터를 반환해준다. NAME strdup, strndup, strdupa, strndupa - duplicate a string SYNOPSIS #include char *strdup(const char *s); char *strndup(const char *s, size_t n); char *strdupa(const char *s); char *strndupa(const char *s, size_t n); #include #include int main() { char *me; me = strdup("who am I"); printf("%s\n", me); return 0; } [추가 내용] 배열 같은경우 1. char a[] = "test..

엔지니어 2012.08.14

getutxent 함수 예제

사용자 관련 정보 검색함수 getutxent()에 대해서 오늘 우연히 사용하게 되어 이에 대한 기록을 남겨놓고 감. utmp => who 명령어에서 사용함. wtmp => last 명령어에서 사용함 함수를 사용할때 추가해야할 해더파일 #include getutxent함수와 관련된 다른 함수들 struct utmpx *getutxent(void); void setutxent(void); void endutxent(void); int utmpxname(const char *file); => file - 교체할 파일이름이 매개변수로 넘어간다. getutxent 함수는 /var/adm/utmpx 파일에서 로그인 정보를 순차적으로 읽어들임. setutxent 함수는 /var/adm/utmpx 파일의 오프셋을 파일..

엔지니어 2012.08.13

strtok 함수 예제

이름 strtok, strtok_r - 문자열에서 토큰들을 뽑아낸다. 사용법 #include char *strtok(char *s, const char *delim); char *strtok_r(char *s, const char *delim, char **ptrptr); 예제를 보면 아래처럼 쉽게 테스트할 수 있다. ============================== #include #include #include int main() { char *temp = "/home/test/HISTORY/history/test_file"; char *aa, buf[256]; strncpy(buf, temp, sizeof(buf)); printf("before strtok : %s\n", buf); aa = ..

엔지니어 2012.08.06

특수문자 파일명 디렉토리명 삭제 (inode이용)

오늘 파일을 하나 지워야 하는데 파일명이 \ 여서 지울라다 보니까 아래와 같은 방법으로 지웠다. % ls -al total 996 drwxr-xr-x 4 jeon jeon 1024 Jul 31 14:02 ./ drwxr-xr-x 54 jeon jeon 2048 May 3 18:30 ../ -rw-r--r-- 1 jeon jeon 21975 Jun 22 13:34 .dependencies drwxr-xr-x 6 jeon jeon 1024 Jul 31 12:30 .svn/ -rw-r--r-- 1 jeon jeon 1843 Jan 30 2012 Makefile -rw-r--r-- 1 jeon jeon 359 Jan 30 2012 \ 아래와 같이 i 옵션을 추가해서 inode값을 확인한다. % ls -ali t..

엔지니어 2012.07.31

readv 함수 예제

read 함수와 매우 동일한 함수다. 다만 다중 버퍼를 사용할 수 있다는 것만 차이점이다. NAME readv, writev - read or write data into multiple buffers SYNOPSIS #include ssize_t readv(int fd, const struct iovec *iov, int iovcnt); 리턴값 : 성공시 전송한 바이트 수, 실패시 -1 리턴 인자값 : - fd : 데이터 전송의 목적지를 나타내는 소켓의 파일 디스크립터를 전달한다. 반드시 소켓에만 제한되는 함수가 아니다. read, write 함수처럼 파일이나 콘솔을 입, 출력 대상으로 할 수도 있다. - vector : 일반적으로 iovec 구조체 배열의 이름을 인자로 전달하는데, iovec 구조체에..

엔지니어 2012.07.30

[LINUX 명령어] sadf 명령어

이럴수가 asdf 마구 치다가 우연히 찾은 명령어다. 아직 자세하게 뭔지는 모르기에 man page 가져다 붙여두고 좀 봐야겠다. SADF(1) Linux User's Manual SADF(1) NAME sadf - Display data collected by sar in multiple formats. SYNOPSIS sadf [ -d | -D | -H | -p | -x ] [ -t ] [ -V ] [ -P { cpu | ALL } ] [ -s [ hh:mm:ss ] ] [ -e [ hh:mm:ss ] ] [ -- sar_options... ] [ interval [ count ] ] [ datafile ] DESCRIPTION The sadf command is used for displaying ..

엔지니어 2012.07.26

poll 함수 예제

select는 특정 이벤트가 발생하면 running을 하지만 poll은 계속해서 주기적으로 돌면서 이벤트를 체크한다. int poll(struct pollfd *fds, nfds_t nfds, int timeout); 1인자값 : 이벤트 등록 변수 2인자값 : 체크할 pollfd의 개수 3인자값 : time out 시간 만약에 poll(0, 0, 1000); 이렇게 하면 sleep(1); 과 같이 1초 delay를 줄 수 있다. 출처: http://forum.falinux.com/zbxe/?document_srl=405838 위의 페이지에 따르면 POLL함수는 확인하고 싶은 여러가지 이벤트를 미리 등록해놓고 그 이벤트들이 발생했는지 확인할 수 있는 편리한 방법을 제공한다. POLL 함수의 PHASE는 5..

엔지니어 2012.07.26

사용가능한 클라이언트 포트번호 범위 찾기 (LINUX)

Server측에서 poll 함수를 가지고 주기적으로 돌고 있고 Client측에서 포트번호를 자동적으로 증가시켜가면서 붙는데 도대체 이 포트번호의 범위가 어딘지 모르겠다. 그래서 찾아봤다. sysctl이라고 시스템 커널과 관련하여 다양한 설정값을 확인할 수 있다. (루트권한) # sysctl -a |grep port sunrpc.max_resvport = 1023 sunrpc.min_resvport = 665 dev.parport.default.spintime = 500 dev.parport.default.timeslice = 200 net.ipv4.ip_local_port_range = 32768 61000 fs.nfs.nlm_tcpport = 0 fs.nfs.nlm_udpport = 0 따라서 요렇게 ..

엔지니어 2012.07.24