Windows 10 dependency Walker

IT/개발정보 2018.07.09 16:58 Posted by ImKevin

그간 Windows 10에서 직접 개발할 일이 없어서 별로 신경을 쓰지 않았던 Dependency Walker의 문제로 잠시 검색을 해보았다.


Windows 7 개발 환경에서는 잘 사용했던것 이었는데 덴장.

Windows 10에서 사용할 수 있는 tool을 검색하다가 open source로 되어있는 Dependency Walker와 ui가 같은 형태로 제공하는 어플을 찾았다.


아래의 주소로 접근하면 다운로드가 가능하다.


https://github.com/lucasg/Dependencies



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

virtualbox ubuntu 공유폴더 작성 방법

IT/Linux 2017.12.28 14:00 Posted by ImKevin
절차 
1. 폴더 설정
2. 내용 편집

3. 폴더 공유 마운트
$ sudo mount -t vboxsf LinuxShare LinuxShare /home/xxxx/share
LinuxShare : 위의 공유폴더에서 폴더이름
share : 실제 linux에서 공유로 사용할 풀패스명 이름

4. 재부팅
- 부팅 후에는 공유 설정이 사라지므로 5, 6을 실행

5. 마운트된 폴더에 권한이 없어 접근 불가로 접근시키기
- vboxsf라는 그룹에 usrid라는 사용자를 등록
$ sudo usermod -a -G vboxsf usrid
- 재부팅하고 /media/sf_LinuxShare로 이동하면 위에서 공유로 설정한 패스의 내용이 보인다.
이대로 사용가능함

6. 마운트된 media를 원하는 위치로 다시 마운트하려면 아래와 같이 등록
$ sudo vi /etc/rc.local 실행
sudo mount -t vboxsf LinuxShare /home/xxxxx/mountpostion
재부팅 하면 5, 6으로 모두 접근 가능함.

축 성공

-------------------------------------------------
아래의 방법만으로는 모두 실패, 위의 5번이 중요
-------------------------------------------------
부팅시 자동마운트 설정 -  아래의 두가지 방법 모두 실패
1. 공유폴더 부팅시 자동마운트
su root 권한 획득 또는 sudo ~
vi /etc/profile실 행후 제일 하단에
umask 022
mount -t vboxsf LinuxShare /home/xxxx/share


2. 실행 스크립트 생성
su root
vi /etc/sharedmount
mount -t vboxsf LinuxShare /home/xxxx/share
chmod +x sharemount
update-rc.d sharemount defaults

5. 재부팅
- 실패


ubuntu 16.04 server 한글설정

IT/Linux 2017.12.28 13:37 Posted by ImKevin
한영키를 누를때 전환은 되나 실제로 한글이 나오지 않는 현상이 발생하였는데 아래와 같이 설정하여 성공하였다.
기본적으로 언어에 한글과 영어는 포함해두었다.
  1. $ sudo apt-get install fcitx-hangul 설치
  2. 설치프로그램 목록에서 입력기 실행

3. 입력기가 나타나면 다음 선택 하여 아래와 같은 창이 나타나면 fcitx를 선택

4. ok를 종료될때까지 선택
5. 재부팅 


centos samba 자동시작 설정

IT/Linux 2017.11.29 12:51 Posted by ImKevin


서버시작 

/etc/init.d/smbd start

service smb start


서버중지

/etc/init.d/smb stop

service smb stop



자동실행
/etc/rc.local 설정 파일에 /etc/init.d/smb start 추가
chkconfig smb on



신규로 설치한 centos가 설치된 폴더에서 .vmx파일을 연다


아래의 정보를 찾아서

ethernet0.present = "TRUE"

ethernet0.connectionType = "nat"

ethernet0.wakeOnPcktRcv = "FALSE"

ethernet0.addressType = "generated"

하단에 아래를 추가한다.

ethernet0.virtualDev = "e1000"


설정후 vm을 부팅하면 정상적으로 네트워크가 연결된다.

MSSQL DB기반으로 저장프로시저 작업을 하다가 하위 하위조직에 대한 검색부분의 작업을 재귀호출을 사용하는 기능인 WITH() 를 사용하여 코드를 작성하였다.


그런데 아래와 같은 오류가 발생하여 확인하였다. 

 최대 재귀 횟수(100)가 초과되었습니다. 


그리고 조치방법 아래와 같다. 원하는 재귀호출 최대수를 지정할 수있다.

규모에 따라 조절하여 사용하면 되겠다.

 OPTION- (MAXRECURSION 200)


폴더 구조 목록 얻기

IT/개발정보 2015.08.31 18:43 Posted by ImKevin

 

 

 

커맨드 창에서 아래와 같이 입력하면된다.

파일폴더 목록 가져오기

tree /f > tree.txt

파일 목록 가져오기
dir /b/s >filelist.txt

--------------------
tree /f > tree.txt
----- 결과-----
C:.
│  1.tiff
│  cfile-test.txt
│  createfile-test.txt
│  tree.txt
│ 
└─Out
    ├─2015082811211133
    │      2015082811211133.tiff
    │     
    ├─2015082811214405
    │      2015082811214405.tiff
    │     
    ├─2015082811215798
    │      2015082811215798.tiff
    │     
    ├─2015082813200312
    │      2015082813200312.tiff
    │     
    ├─2015082813204195
    │      2015082813204195.tiff
    │     
    └─2015082813213818
            2015082813213818.tiff