본문 바로가기

Function

ARM core의 feature enable 여부 확인 방법 ID_AA64MMFR0_EL1, ID_AA64MMFR1_EL1 과 ID_AA64MMFR2_EL1 register값을 확인하면, 어떤 feature 들이 현재 ARM core에서 support 되는지 여부를 알 수 있다. developer.arm.com/docs/ddi0595/b/aarch64-system-registers/id_aa64mmfr2_el1 developer.arm.com/docs/ddi0595/b/aarch64-system-registers/id_aa64mmfr1_el1 예를들어 현재 사용중인 ARMv8.4-NV 기능 지원 여부를 알고 싶은데, register 값이 ID_AA64MMFR2_EL1: 0x1011 이다. 위 링크한 문서에 따르면 ARMv8.4-NV기능은 아래 bit의 값을 읽고 .. 더보기
strcmp 함수의 모호한 return value strcmp 함수는 스트링간 포함여부를 찾는데는 사용하기 어렵다. strstr 이나 strchar 를 사용해야 한다.두 string 이 완전히 동일한지만 판단이 용이하다. #include //#include #include #include #include #include #include #include // O_WRONLY#include // strlen() #define BUFF_SIZE 1024 int main(){ const char* standard = "12345"; const char* standard2 = "0123456"; const char* wrong = "a12"; const char* part = "234"; int rst=0; rst = strcmp(standard, standar.. 더보기
헷갈리는 c string 함수들 정리중... strstr은 문자열 중에서 특정 문구를 찾아 그 위치를 반환해 주는 함수특히, 포함된 문자열을 찾는데 유용하다. (strcmp 를 사용하면 안된다 !!) /*strstr */char * strstr(const char * str1, const char * str2); 참조 : http://tapito.tistory.com/313 1. strcat - strcat (string concatenation)은 문자열 2개를 이어 붙이는 역할을 해주는 함수이다. 예컨대, "Love"와 "You"를 합치면 LoveYou가 될 것이다. 이처럼 두개의 문자열을 합쳐주는 함수가 strcat 이다. 이 함수의 사용방법과 내부적인 결과를 자세히 살펴보자. 먼저 함수의 모양을 알아보자. 함수.. 더보기
linux kernel code 에서 system call 찾는 방법 system call 을 찾는 방법 SYSCALL_DEFINE 매크로를 통해 찾아야 한다 참고 : http://daehee87.tistory.com/253 더보기
select 함수에 대한 친절한 설명 http://blog.naver.com/ehdus85?Redirect=Log&logNo=130098898750 파일 디스크립터를 리턴 받았다는 것은 입/출력 버퍼가 생겼다는 의미 파일 디스크립터의 변화는 입/출력 버퍼의 변화가 있는 것 입/출력 버퍼의 변화 : 입/출력 버퍼의 여유가 있는가? select 함수는 파일 디스크립터의 변화가 없으면 리턴하지 않는다 : 대기상태(블로킹)에 빠질수 있다. 타임 아웃 설정 : 대기 상태에 빠지지 않도록 원하는 시간이 되면 알아서 리턴하도록 설정 검사 범위 설정 : select 함수가 보다 쉽게 검사하도록 디스크립터 설정 자료형 변수 : 비트단위 구분을 통해서 구분 readset : 변수 선언 FD_ZERO : 전달받은 변수에 대한 인자를 0으로 초기화 FD_SET .. 더보기
The cost of inline functions The cost of inline functions [Posted April 28, 2004 by corbet] The kernel makes heavy use of inline functions. In many cases, inline expansion of functions is necessary; some of these functions employ various sorts of assembly language trickery that must be part of the calling function. In many other cases, though, inline functions are used as a way of improving performance. The thinking is that.. 더보기
window 의 계산기 기능설명 계산기는 시중에서 사용되는 일반 계산기의 모든 기능뿐만 아니라 공학용 계산기의 기능도 제공하는 훌륭한 보조 프로그램이다. 이제, 컴퓨터를 이용하면서 별도의 계산기를 준비할 필요가 없게 된 것이다. 계산기는 [시작 - 프로그램 - 보조프로그램 - 계산기]를 선택해서 실행할 수 있다. 계산을 하는 방법은 일반 계산기와 동일하다. 키보드를 이용할 수도 있고, 마우스를 사용해도 된다. 마우스를 사용하는 것은 너무 번거롭게 느껴질 것이다. 키보드의 오른쪽 끝에 붙어있는 숫자 키패드를 이용하는 것이 가장 좋은 방법으로 생각된다. 숫자 키패드를 이용해서 숫자를 입력하기 위해서는 숫자 키패드의 제일 위에 있는 [Num Lock] 키를 눌러서 이 부분에 표시등이 켜져 있어야 한다. 1. 일반 계산기 단순 계산을 하는 방.. 더보기
symbol table 로 code area 에서 함수 위치 찾기 readelf -s library.so 를 치면 symbol table 이 나온다. 9315: 000c3230 28 FUNC LOCAL DEFAULT 11 __GI_delete_module 9316: 00093188 540 FUNC LOCAL DEFAULT 11 __pathconf 9317: 0006ca08 952 FUNC LOCAL DEFAULT 11 __malloc 9318: 00059b88 236 FUNC LOCAL DEFAULT 11 _IO_padn_internal 9319: 000b4614 24 FUNC LOCAL DEFAULT 11 __read_nocancel # cat /proc/1456/maps 을 해서 나온 code 영역에서 40242000-4035b000 r-xp 00000000 8b:.. 더보기