[Linux][Kernel] container_of 매크로
By Guillermo Austin Kim | 2018년 5월 8일 |
이번에는 container_of란 매크로를 배워볼게요. 커널 코드에서 current 매크로 못지않게 많이 활용하는 매크로이니 잘 알아야겠죠. 그럼 다음 샘플 코드를 함께 보면서 container_of란 매크로을 어떻게 활용하는지 살펴볼까요? 다음 wq_barrier_func 함수를 예를 들까요? container_of를 써서 struct wq_barrier *barr 로컬 변수에 어떤 값을 대입하고 있죠.static struct workqueue_struct *dev_to_wq(struct device *dev){ struct wq_device *wq_dev = container_of(dev, struct wq_device, dev); return wq_dev->wq;} 위 코드를 읽기 전에 우
spin_lock() vs spin_lock_irq() vs spin_lock_irqsave() - 분석
By Guillermo Austin Kim | 2017년 12월 26일 |
자 그 동안 궁금해왔던 아래 API들의 차이점에 대해서 알아보는 시간을 갖도록 하겠습니다.spin_lock(), spin_lock_irq(), spin_lock_irqsave() 리눅스 커널 책에서 마르고 닳도록 설명을 많이 하고 있는데요. 직접 소스를 열어서 분석하는게 가장 좋은 리눅스 커널을 마스터하는 길인 것 같아요. 소스 코드가 오픈되어 있잖아요. 1> spin_lock()아래 순서로 실제 구현부는 __raw_spin_lock() 함수 라는 걸 알 수 있어요. spin_lock -> raw_spin_lock -> __raw_spin_lockstatic inline void spin_lock(spinlock_t *lock){ raw_spin_lock(&lock->rlo
[bash: awk] 특정 필드(field)의 값이 있는 경우, 또는 없는 경우 판별하기
By 반달가면 | 2018년 6월 18일 |
여러개의 항목 또는 필드(field)로 이루어진 내용에서 특정한 항목의 값이 있는지 없는지 판별할 때, 즉 특정한 필드 값의 유무에 따라 선별을 해야 할 경우에 awk를 활용할 수 있다. (우선 awk에서 조건에 따른 작업에 대한 기본적인 내용은 이전 게시물을 참고하자. 여기로) 예를 들어 이름, 전화번호, 이메일을 저장한 파일에서 전화번호가 없는 사람만 골라서 출력한다거나 아니면 이메딜 주소가 있는 사람만 출력하는 경우다. 각 항목을 탭(tab)으로 구분한다고 가정한다. # list.txt 파일 내용 확인 cat list.txt john 123-1234 [email protected] jane [email protected] sam 222-3434 위의 예시에서 탭이
tofrodos - 리눅스에서 윈도우용 텍스트 파일과의 줄바꿈 형식 차이 해결하기
By 반달가면 | 2016년 11월 13일 |
리눅스와 윈도우의 텍스트 파일은 줄바꿈 문자가 다르다. 리눅스는 lf(line feed,\n), 윈도우는 crlf(carriage return line feed, \r\n)를 사용한다. 이런 차이 때문에 리눅스에서 만든 텍스트 파일을 윈도우 메모장에서 열어 보면 줄바꿈이 제대로 보이지 않고 이상하게 된다. 리눅스에서 윈도우 텍스트 파일을 다루기 위해 tofrodos 패키지를 설치하면 된다.(데비안/우분투 기준) # tofrodos 패키지 설치 sudo apt-get install tofrodos 설치를 완료하면 fromdos와 todos를 사용할 수 있다. 윈도우쪽에서 가져온 텍스트 파일을 리눅스 형식으로 바꾸고 싶으면 fromdos, 반대로 리눅스에서 만든 텍스트 파일을 윈도우에서 볼 수