Linux C 에서 arm 크로스 컴파일 시 system() 함수 사용하기
Linux C 에서 arm 크로스 컴파일 시 system() 함수 사용하기 흔히 컴퓨터에서 쓰는 Intel CPU 와 휴대폰의 ARM CPU 에서 사용하는 어셈블리어가 다르기 때문에 컴퓨터에서 작성한 프로그램이 폰에 심어 제대로 작동하기 위해서는 arm 크로스 컴파일러를 이용하여 컴파일하여야 한다. 그런데 sendevent 처럼 이벤트 보내기 등을 위하여 system() 함수를 쓰려고하면 제대로 동작하지 않는다.그 이유는 system() 함수는 리눅스에서 내부적으로 /bin/sh 를 호출하여 인자값을 처리하도록 한다.하지만 안드로이드는 /system/bin/mksh 가 쉘의 위치이다. 제대로 동작을 시키기 위해서는 안드로이드에 /bin에 sh 라는 쉘을 만들어주거나 system() 함수를 직접 만드는 방..
OS/안드로이드
2014. 3. 23. 16:46