본문 바로가기

SYSTEM

(19)
공유 라이브러리 생성 공유 라이브러리를 생성하는 법도.. 일주일은 삽질했던 것 같다 그래도 감 잡고나서는 실수 없이 빠르게 만들었다! ​ ​ 1) 소스 코드인 c파일 생성 ~$ vi test.c ​ ​ 2) 소스코드를 오브젝트 파일로 바꿔줌 -$ gcc -c test.c Ls를 하면 test.o 라는 오브젝트 파일이 생긴 것을 확인 ​ ​ 3) 오브젝트 파일을 .so 형식인 공유 라이브러리로 바꿔줌 -$ gcc -shared -o libtest.so test.o -o 뒤의 인자는 반드시 lib”소스코드이름”.so 형태여야함 실행파일인 초록색을 나타내는 libtest.so가 생겼음을 확인 ​ 4) LD_LIBRARY_PATH 를 이용해 라이브러리 경로를 추가함 ~$ export LD_LIBRARY_PATH=$LD_LIBRARY..
리눅스 특수권한 조사, 실습 c언어, web, system 크게 세 가지 분야로 배웠고 그 중 SYSTEM에 대한 활동들 정리 깃허브 SYSTEM 폴더에 워드 파일로 정리되어있음 ​ https://github.com/MY-yeong/SYSTEM GitHub - MY-yeong/SYSTEM Contribute to MY-yeong/SYSTEM development by creating an account on GitHub. github.com d(파일 타입) rwx (사용자권한) rwx (그룹권한) rwx (다른 사용자권한) 접근 권한 파일 디렉토리 읽기 (4) 파일의 내용을 읽어올 수 있다. Ls 명령으로 하위 디렉토리를 볼 수 있다. 쓰기 (2) 파일에 내용을 추가하거나 수정할 수 있다. 디렉토리 아래 새 파일을 생성하거나, 제거..
함수 호출 규약 (Calling Convention) Calling Convention 조사 및 정리 ​ ▶함수 호출 규약 (Calling Convention) : 함수를 호출하는 방식에 대한 약속 규약 인자 전달 순서 인자 전달 매체 Stack을 정리하는 함수 Cdecl ← Stack Caller Stdcall ← Stack Callee Fastcall ← 레지스터 + Stack Callee + clrcall, thiscall, pascal, 등의 규약 존재 + Caller / Callee란? Caller – 콜러가 저장하는 레지스터, 값이 보존되지 않아도 되는 경우는 백업하지 않을 수 있음 Callee – 콜리가 저장하는 레지스터 , 콜러가 백업을 필요로하는 레지스터가 무엇인지 모르기에 무조건 백업해야함 # __CDECL 방식 C / C++ 함수에서 기..