본문 바로가기

분류 전체보기93

비트 연산자의 특징. 비트 연산자의 활용. AND OR XOR 0 0 0 0 0 0 1 0 1 1 1 0 0 1 1 1 1 1 1 0 기본적인 특징. AND : 둘 다 1 인 경우, 둘 다 참인 경우에만 1. OR : 둘 중 하나만 1 이면 무조건 1. XOR : 두개가 서로 다른 경우에만 1. ~ 연산자 : 비트 단위 NOT ~ 0 => 1 ~ 1 => 0 > 연산자 : 오른쪽 쉬프트 연산자 a>>b ☞ a의 비트를 b칸씩 왼쪽으로 이동한 값을 반환 8>>2 ☞ 8의 비트를 2칸씩 왼쪽으로 이동한 값을 반환 &연산자의 활용. &연산의 경우 1 과 1인 경우에만 1이 나온다. 따라서 & 1을 하면 대상이 0 이면 0, 1이었다면 1이 나오는 셈이다. 즉, 무언가에 & 1 연산을 했다면 그 결과 값은 무언가(연산의 대상. 원본 값)의 값과 같다. .. 2012. 2. 5.
undefined reference to `pthread_join' undefined reference to `pthread_join' undefined reference to `pthread_join' undefined reference to `pthread_create' undefined reference to `pthread_create' 컴파일 할 때 끝에 -lpthread 붙여주면 된다. [ i가 아닌 l ] 2012. 2. 4.
'gets' function is dangerous and should not be used. 'gets' function is dangerous and should not be used. gets는 버퍼에 얼마나 값을 저장할지 지정하지 않기 때문에 버퍼오버플로우 기법에 노출된다. 때문에 fgets를 이용해 크기를 지정해서 사용하는 방법을 채택한다. fgets(char *, int, FILE *) (저장할 버퍼, 저장할 크기, 읽어들일 대상) 읽어들일 대상에 주로 stdin 을 사용한다. 즉 키보드에서 입력한 값을 읽는다는 의미이다. 키보드에서 읽어서 크기만큼 버퍼에 저장하게 된다. gets의 경우 과정은 동일하지만 키보드가 기본이자 고정이다. 다른 곳으로부터 읽을 수 없으며. 읽는 크기에 대한 제약이 없다. 2012. 2. 4.
[안드로이드] 새 프로젝트 만들기. File -> New -> Project 선택. Android Project 가 있다면 바로 선택. Android Project 선택 -> Next 프로젝트 이름 입력 -> Next Application Name 입력. Package Name 입력. (일반적으로 아래처럼 . (점) 이 2개가 들어가게 입력합니다. .(점)을 기준으로 하위 폴더가 생성되는 것입니다. SDK를 선택. 버전에 따라 숫자가 정해져 있습니다. Finish 선택. 기본적으로 이렇게 생성이 되면, 바로 실행 해도 Hello Android 와 같은 결과가 나타남. 2011. 11. 25.
[자바] 간단하지만 헛갈리는 이상한 것들? (계속 추가 중) 버튼의 이름 바꾸는 방법. (버튼 이름 바꾸기) 버튼 이름을 바꾸고 싶었는데, 어떤게 버튼 이름에 대한건지 몰라서 많이 허덕였다.- -;; 그 전에, 몇가지만 알아보자. 자바에서 그래픽쪽 관련된게, 기본(awt) 과 J가 붙은 것(swing)들이 있다. 사실 큰 차이는 잘 못느끼고, awt로 만든 경우 해당 프로그램을 보는 컴퓨터의 O/S에 따라 화면이 조금씩 달라지게되는데 Swing으로 작성한 경우 통일 시켜서 어떤 O/S 에서든 동일한 화면을 보여준다고 한다. 버튼 할꺼니까, 버튼만 살짝 비교하면서 보자. 이게 awt 의 Button을 사용하는 모습. import에서 awt의 Button을 하고 있다. 버튼의 이름이 찾는데 고생을 좀 했는데. 눈에 띄는게 getName()이라 해봤더니 다른게 나왔다 .. 2011. 11. 17.
java에서 C와 다른 차이점 몇가지. define이 없다. 매크로가 없다. 사실.. 어떻게 보면 C에서도 define 없어도 되긴하다. 매크로 함수가 아닌 이상 const와 큰 차이도 없으니까. 그래서 그런지 자바로는.. 일단 동일한 기능을 구현해야 하니까 그 특징에 맞춰서. 1. 어디서든 사용이 가능해야 한다. - static 사용. 2. 처음 설정 된 값이 변경되선 안된다. - final 사용. 이 2가지를 해주면 되는데. 변수의 경우 static final int test; 만 해주면 안되고 초기 값도 잡아줘야 한다. 사실 당연한 소리다. 값을 변경하지 못할테니 처음에 생성할 때 잡아줘야지. 별 생각없이 만들면, 왜 안되지- -? 하고 멍때리게 된다. 자바는 변수를 제외한 나머지 모든 것들(배열, 객체변수) 을 C의 포인터 형식으로 잡.. 2011. 11. 14.
[s5pc100] proc filesystem 만들어보기. 그림설명. 프록이란게 실습과정을 보면 모듈 프로그램을 작성해서 추가하고 만들어진 proc 파일을 읽으면서 결과를 보는 식인데. 그럼, 그냥 파일에다 쓰고, cat으로 읽는거랑 무슨 차이인가? 싶었다. 그 차이는, 일반적으로 디스크에 글을 썻다가 디스크에서 읽어 들이는 것인데. 프록은 장치파일 이기 때문에 메모리에 내용이 저장되는 셈이다. 메모리에 쓰고 메모리에서 읽어오는 것. 따라서 재부팅하면 날아갈 것이며, 실제로 파일에 쓰는 것이 아니지만, 리눅스에서 개발자나 이해를 돕기 위해서 모든 장치들을 파일형식으로 해서, 파일과 동일한 방식으로 사용할 수 있게 만들었다. 그 편리함이 오히려 약간의 혼돈을 주었던 것. pro_filesystem 실습을 시작해 보자. 빨간색 박스는 모듈 프로그램시 반드시 있어야 하는 틀이고.. 2011. 11. 4.
unknown field ‘open’ specified in initializer /nfsroot/RootFS-S5PC100/a_test/device/kstory_dd.c:17: error: variable ‘kstory_fops’ has initializer but incomplete type /nfsroot/RootFS-S5PC100/a_test/device/kstory_dd.c:18: error: unknown field ‘open’ specified in initializer /nfsroot/RootFS-S5PC100/a_test/device/kstory_dd.c:18: warning: excess elements in struct initializer /nfsroot/RootFS-S5PC100/a_test/device/kstory_dd.c:18: warning: (near i.. 2011. 11. 1.
[s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개). 그림설명. [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) [s5pc100] 모듈 만들기 기초 (심볼 미공개, 전역 심볼 공개) 모듈의 작성 및 추가 삭제를 모른다면 아래 링크를 참조 하자. [s5pc100] 모듈 만들기 기초. (hello 출력하기) 모듈에는 심볼을 공개 하는 것과 공개하지 않는 것이 있다. 심볼이란.. c로 비유하자면 함수와 비슷한데 기본적으로 있어야 하는 2개의 시작/종료 함수를 제외한 사용자가 정의한 함수같은 것. 이해가 안된다면 일단 아래 예제들을 따라가 보자. 심볼을 공개하지 않는 예제이다. 2개의 박스에 들어있는 함수가 기본적으로 있어야 하는 함수. MODULE_LICENSE("GPL") 은 내가.. 2011. 10. 31.
[s5pc100] 모듈 만들기 기초. (hello 출력하기). 그림설명. [s5pc100] 모듈 만들기 기초. (hello 출력하기) [s5pc100] 모듈 만들기 기초. (hello 출력하기) [s5pc100] 모듈 만들기 기초. (hello 출력하기) vi hello_module.c c 프로그래밍에서 메인이 있어야 하는 형식이 있듯이, 모듈에서도 기본적이 형식이 있다. init_module() / cleanup_module() 함수가 있다. 이름에서 알 수 있듯이 시작하는 함수와 끝나는 함수이다. main 처럼 반드시 있어야 하는 함수이다. 헌데.. 이런 함수의 이름을 다르게 쓰고 싶은 경우. module_init() / moduel_exit() 라는 메크로 함수가 있다. 이 함수는 인자로 받은 함수를 init_module로 연결해 주는 셈. 그래서 내 마음대로 함수를 생.. 2011. 10. 31.