반응형

학습자료(~2017)/리눅스 110

[Linux] 파일 관련 API 리스트

API 볼륨 statvfs 디렉토리 opendir closedir readdir mkdir rmdir rename telldir seekdir rewinddir 쿼타 setquota getquota deletequota 파일 open close creat read write symlink lseek64 fsync link unlink readlink 속성 truncate ftruncate utime utimes futimes lutimes stat fstat lstat chown fchown lchown chmod fchmod lchmod 확장속성 getxattr lgetxattr fgetxattr setxattr lsetxattr fsetxattr listxattr llistxattr flistxatt..

[Linux] 유닉스 소켓 (unix socket) 을 이용한 파일 디스크립트 보내기/받기(file descriptor send/recv) - 다른 프로세스로 디스크립트 전송/공유

리눅스는 유닉스 소켓을 이용하여 프로세스끼리 파일 디스크립트를 보내주고 받을 수 있다.아래 예제는 뼈대만 존재한다. 예외나 기타 처리는 없다.뼈대에 살을 붙이는 형태로 사용 할 것이다.자세한 설명은 나중에.. 시간이 있다면... sender.c - 이 예제에서는 sender 프로세스가 자신의 표준출력 디스크립트를 전송 #include#include#include#include#include#include int main(int argc,char **args){ int sc; struct sockaddr_un addr; int z; int fd; sc = socket(PF_LOCAL,SOCK_STREAM,0); if(sc < 0) { return -1; } memset(&addr,sizeof(addr),0..

[Linux] RPM package(RPM 만들기 , RPM 패키징) 이모저모

참고 사이트 ftp://ftp.muug.mb.ca/mirror/redhat/redhat/linux/6.2/en/doc/HOWTOS/translations/ko/html/RPM-HOWTO.html#toc6 http://www.rpm.org/max-rpm/index.html http://docs.fedoraproject.org/en-US/Fedora_Draft_Documentation/0.1/html/RPM_Guide/index.html 아래의 내용은 spec 파일 샘플 , RPM 만들때 필요한 사항들만을 적었다. 내용은 자세하지 않으므로 자세한 사항은 위의 참고 사이트를 통해 확인하기바란다. rpm spec 파일 Name: test Summary: Test Program Version: 0.1 Releas..

[LINUX] Library constructor and destructor functions (라이브러리 생성자, 소멸자 기능 _init , _fini)

리눅스 라이브러리의 생성자와 소멸자를 등록하는 방법은 2가지가 있다.라이브러리 생성자나 소멸자는 라이브러리 전역에서 쓰이고 한번만 초기화 되어야 하는 객체에 사용하라. 예를 들어 전역적으로 쓰이는 변수, mutex 등을 말한다. 추천 void __attribute__ ((constructor)) my_init(void) void __attribute__ ((destructor)) my_fini(void) 생성자(constructor) 는 dlopen 이 반환되기 전이나 혹은 라이브러리가 로드 될 때에 실행된다. 소멸자(destructor) 는 dlclose 가 반환되기 전에 혹은 exit()나 main() 이 끝날때 실행된다.중요 : 공유 라이브러리는 컴파일시 -nostartfiles 혹은 -nostdl..

[Linux] path resolution , 경로 분석법

path resolution man page : http://linux.die.net/man/2/path_resolution path 값을 인자로 받는 함수는 path에 대한 검증을 해야한다. 상대경로일 경우 절대 경로로 바꾸어주고 (/test/../a -> /a) path 에 해당하는 파일의 종류를 파악하고 함수가 동작해야하는가 말아야하는가를 판단해야한다. 1.상대경로를 절대경로로 바꾼다.가. 연속된 '/' 는 '/' 하나로 대체한다. 예) '//' -> '/'나. '/./' 로 '/' 하나로 대체한다.다. '/../' 상위 토큰(폴더)을 제거 예) /test/test/../ -> /test/라. 경로의 마지막이 '/..' 일 경우 상위 토큰(폴더)을 제거마. 경로의 마지막이 '/' 라면 이 경로는 디..

[LINUX]ext3, ext4 크기 확장 - Resize an ext3, ext4

만약 LVM 을 통해 기존에 있던 Logical volume 을 lvresize 나 lvextend 혹은 lvreduce 를 통해 크기를 변경했을 때 lvdisplay 로 확인했을 때는 크기가 확장되거나 줄었는데 실제 mount (df) 를 통해 보면 이전하고 크기가 바뀌지 않았을 경우가 있다.이는 LVM logical volume 의 크기를 조정했으나 이 볼륨을 실제 ext3 나 ext4 등 파일시스템으로 초기 포맷 했을 때 크기가 고정되어 버렸기 때문이다. 용어는 정확히 모르겠으나 free block 테이블이 이미 고정되었기 때문일 것이다.(추측이다.)그럴때 resize2fs 라는 유틸을 통해 파일시스템을 다시 조정하면 된다.(용어가 맞나 모르겠다.)아래 내용은 http://en.positon.org..

[LINUX] samba 삼바 설정 및 해결

Samba(삼바)란? 리눅스에서 윈도우 시스템에게 파일시스템을 공유하기 위한 프로그램이다.SMB/CIFS 네트워크 프로토콜을 재구현한 프로그램이다.즉 리눅스의 파일시스템이나 프린트를 윈도우에게 공유할 수 있게 해준다. 설치(centos 기준) $ yum install samba 실행 및 중지 $ service smb start $ service smb stop 설정 /etc/samba/smb.conf 변경아래의 설정 설명은 http://blog.nextcube.pe.kr/126 에서 가지고 왔다.자동 홈디렉토리리눅스 계정 사용자들이 홈디렉토리를 로그인홈으로 사용하기 위한 설정[home]으로 선언된 부분에 정의프린터 설정네트워크 공유프린터에 대한 설정[printers]으로 선언된 부..

데이터 모델(플래폼별 데이터 타입의 크기)

64비트 리눅스 FreeBSD NetBSD 데이터타입 iAPX68IA-32 IA-64 SPARC-64 ARM-32 Alpha OpenBSD char 88 8 8 8 8 8 short 1616 16 16 16 16 16 int 1632 32 32 32 32 32 long 3232 32 64 32 64 64 long long N/A64 64 64 64 64 64 pointer 16/3232 64 64 32 64 64 이기종간 데이터 통신시 데이터 모델을 확실히 이해하고 프로그램하자.혹은 stdint.h 에 있는 INT32_T 같은 데이터 타입을 사용하면 좋겠다.

[리눅스] 프로세스 추적(디버그) 개발 방법에 도움이 되는 글

원문 : http://www.linuxjournal.com/article/6100 아래는 제가 보기 편하기 위해 위 글을 복사 붙여넣기 했습니다. Playing with ptrace, Part I From Issue #103November 2002Oct 31, 2002 By Pradeep Padala inSysAdminUsing ptrace allows you to set up system call interception and modification at the user level.Have you ever wondered how system calls can be intercepted? Have you ever tried fooling the kernel by changing system call ar..

반응형