리눅스에서 윈도우 공유폴더를 마운트 해 보자.

Posted by 빵빵빵
2012/01/25 15:05 전산(컴퓨터)/리눅스



다음과 같이 쓰면 된다.

sudo mount -t cifs -o username=yjlee,uid=1000,gid=0,iocharset=utf8,codepage=cp949 //192.168.100.12/ShareFD ./sharefd/

sudo 는 루트권한으로 실행해 보자~
mount 는 마운트 하겠다는 명령어
-t cifs 는 파일 시스템 이름인데 윈도우의 공유폴더를 연결할때는 이렇게 한다.
-o 뒤에는 옵션이 붙는다.  각 옵션은 ,로 구분한다. 로그인이 필요한 경우 username으로 윈도우 컴의 로그인 아이디를 적어주었다. uid와 gid는 마운트된 영역의 유저아이디와 그룹아이디를 설정하는데 마운트 하는 사용자의 번호를 사용하면 되겠다. ls -lan (n옵션이 숫자로 유져아이디와 그룹아이디를 보여준다)로 조회하면 나온다. 그다음 입출력문자셋이 utf8이고 코드페이지가 cp949로 설정하여 공유폴더의 한글이 정상적으로 표시되게 한다.
//192.168.100.12/ShareFD 는 IP에 공유된 폴더 이름
./sharefd 는 마운트될 리눅스 상의 디렉토리

정상적으로 마운트 되면 ./sharefd 안을 살펴보면 공유된 폴더의 내용이 보일 것이다.
2012/01/25 15:05 2012/01/25 15:05

리눅스에서 Segmentation fault 뜰때~ 돌려보자~

Posted by 빵빵빵
2012/01/18 17:40 전산(컴퓨터)/리눅스



메모리 깨먹을 때 Segmentation fault 가 작렬하지요...

배열의 첨자를 벗어나서 접근하거나 포인터를 할당된 메모리를 넘어서 접근할때 나지요.

free에서 죽는 경우가 많고요.

주의할점은 malloc으로 strlen만큼 메모리를 잡고 sprintf를 하면 절대!!!!!! 안됩니다.
sprintf는 뒤에 무조건 NULL을 하나 더 넣어주기 때문에 strlen보다 1 크게 잡아줘야 합니다.


또..


*** glibc detected *** free():invalid point

라는 메시지를 툭~~~ 던지고 몇페이지나 되는 데이터가 주루루루루룩~ 올라가는 경우가 있습니다.
요넘도 비정상적인 메모리 프리가 체크되면 뜨는건데요...

Linux libc 5.4.23이후와 GNU libc 2.x 버전은 환경 변수로 malloc을 조정할 수 있습니다.
쉘에서 export MALLOC_CHECK_=3 해주시면 에러 메시지를 출력하고 종료해 줍니다. 설정 값은 0~3

0 : 아무것도 하지 않고 그냥 프로그램 동작.... 프리하는 순간엔 죽겠죠??? 언젠가 맛팅이 가겠죠...
1 : 에러 메시지 출력
2 : 아무런 메시지 없이 프로그램 종료
3 : 에러 메시지 출력하고 프로그램 종료

긍게 2, 3을 해서 메모리 손상이 감지 됬을때 서 버리는게 낫겠죠? 메시지까지 출력해 준다면(3) 최고겠구요...



쉽게 문제의 코드를 찾는 방법은 valgrind 라는 프로그램을 쓰면됩니다.
정말 찾아내는 순간 쪽팔려서 얼굴이 발그레진다능... ㅋㅋㅋ

valgrind 자기가만든프로그램

요렇게 실행하면 어디쯤에서 메모리를 깨먹는지 대충 알려줍니다.... 영어루... ㅡㅡ;

apt-get instll valgrind apt-get install valgrind 를 하면 우분투에선 걍 설치해주겠죠???? 아님 말구... ^^

2012/01/18 17:40 2012/01/18 17:40

바이너리의 심볼 리스트 조회

Posted by 빵빵빵
2011/12/30 13:54 전산(컴퓨터)/리눅스



사용하고 있는 심볼 리스트를 확인할 수 있다.
so 파일의 경우에는 외부로 노출되어 있는 함수 목록도 나온다...

nm 파일이름

2011/12/30 13:54 2011/12/30 13:54