linux getmodulefilename

IT/Linux 2018.02.09 13:04 Posted by ImKevin

Linux 환경에서 모듈 풀패스명을 얻고자 할때 아래와 같이 얻을 수 있다.


char link[50];
char path[256] ={0};

sprintf( link, "/proc/%d/exe", getpid() );
readlink( link, path, 256 );
printf("path = %s\n", exepath);

ret  : path = /home/aaa/bbb/ccc 


'IT > Linux' 카테고리의 다른 글

linux getmodulefilename  (0) 2018.02.09
socket 클라이언트 연결해제 감지  (0) 2018.02.07
개발 유용 커맨드  (0) 2018.01.08
virtualbox ubuntu 공유폴더 작성 방법  (0) 2017.12.28
ubuntu 16.04 server 한글설정  (0) 2017.12.28
centos samba 자동시작 설정  (0) 2017.11.29

socket 클라이언트 연결해제 감지

IT/Linux 2018.02.07 10:25 Posted by ImKevin

client socket이 연결을 끊은 경우 server socket이 감지하여 오픈하였던 client socket을 닫아야하는 경우 아래와 같이 확인하면된다.



int nread = read ( clientsocket, readbuf, 1000);


if (nread == 0) // peer disconnected

{

    close(clientsocket); // windows에서는 closesocket()

    break;

}

else if (nread == -1) // error

{

    perror("read");

    break;

}

else // received 'n' bytes

{

   // 데이터를 정상 수신한 경우로 수신 데이터 처리

    printf("%.*s", n, buffer);

}

'IT > Linux' 카테고리의 다른 글

linux getmodulefilename  (0) 2018.02.09
socket 클라이언트 연결해제 감지  (0) 2018.02.07
개발 유용 커맨드  (0) 2018.01.08
virtualbox ubuntu 공유폴더 작성 방법  (0) 2017.12.28
ubuntu 16.04 server 한글설정  (0) 2017.12.28
centos samba 자동시작 설정  (0) 2017.11.29

개발 유용 커맨드

IT/Linux 2018.01.08 14:48 Posted by ImKevin

개발에 유용한 커맨드 정리

- 리눅스 초보개발자의 커맨드 정리



 구분

커맨드 

 결과 및 설명 

 모듈 아키텍쳐 확인

 objdump -f libxml2.so | grep ^architecture

architecture: i386, flags 0x00000150:


 32bit/64bit 모듈 체크

 모듈 디펜던시 보기 objdump -x libshairplay.so Dynamic Section:
  NEEDED               libplist.so.1
  NEEDED               libpthread.so.0
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
  SONAME               libshairplay.so.0
  INIT                 0x00001a2c
  FINI                 0x0001ca08
...

 모듈 디펜던시 보기

readelf -d libplist.so.1.1.6 0x00000001 (NEEDED) Shared library: [libxml2.so.2]

0x00000001 (NEEDED) Shared library: [libc.so.6]

0x0000000e (SONAME) Library soname: [libplist.so.1]

0x0000000f (RPATH) Library rpath: [/usr/local/lib:]

0x0000000c (INIT) 0x16cc

...
 프로세스 목록 ps -eal | grep Air Air이 포함된 프로세스 목록 표시



0x00000001 (NEEDED) Shared library: [libxml2.so.2]

0x00000001 (NEEDED) Shared library: [libc.so.6]

0x0000000e (SONAME) Library soname: [libplist.so.1]

0x0000000f (RPATH) Library rpath: [/usr/local/lib:]

0x0000000c (INIT) 0x16cc


Dynamic Section:
  NEEDED               libplist.so.1
  NEEDED               libpthread.so.0
  NEEDED               libdl.so.2
  NEEDED               libc.so.6
  SONAME               libshairplay.so.0
  INIT                 0x00001a2c
  FINI                 0x0001ca08


'IT > Linux' 카테고리의 다른 글

linux getmodulefilename  (0) 2018.02.09
socket 클라이언트 연결해제 감지  (0) 2018.02.07
개발 유용 커맨드  (0) 2018.01.08
virtualbox ubuntu 공유폴더 작성 방법  (0) 2017.12.28
ubuntu 16.04 server 한글설정  (0) 2017.12.28
centos samba 자동시작 설정  (0) 2017.11.29