본문 바로가기

Programming

처음 빌드해본 xnu 커널은 실패. VMware에서 해본게 다행이다.커널, 빌드, 성공적 아무것도 수정 안했는데....xnu가 버전이 안맞아서 그런가보다.Apple이 올려놓은 최신버전xnu-2782.1.97.tar.gz그러나 현재 OS X 10.10.3의 커널버전은 xnu-2782.20 더보기
Quick Look Plug-In 만들기 유용한 기능인 Quick Look(훑어보기) 의 Plug-In을 만들어 보자. Xcode에서 새로운 프로젝트를 만들때, 다음과 같이 Quick Look Plug-In을 선택하자. 적당히 이름을 정하고, 생성! 테스트로 만들어볼 플러그인은 tgz파일의 내용을 미리 볼 수 있는 플러그인이다.먼저, 타겟이 되는 파일의 형식을 지정하자.Supporting Files 디렉토리의 Info.plist 파일을 수정해야한다. Information Property List -> Document types -> Item 0 안의 Document Content Type UTIs의 값이 파일의 형식을 나타내는데,이를 UTI 형식으로 넣어야 한다. 파일의 UTI 형식을 알아내는 방법은 다음과 같다.mdls -name kMDIte.. 더보기
dos2unix dos와 unix는 EOL이 다르다. dos에서 사용하는 EOL은 \r\n이고, unix에서 사용하는 EOL은 '\n'이다. 그러므로 텍스트 파일을 전송 할 때 문제가 생길 수 있다. dos에서 unix로 파일을 전송했을때, 문제를 해결 할 수 있는 방법이 dos2unix라는 툴이다. 간단한 python으로 dos2unix를 구현 해 보았다. #!/usr/bin/python import sys def usage(): print 'usage:\tdos2unix file' if len(sys.argv) != 2: usage() exit() s = file(sys.argv[1], 'rb') sc = s.readlines() s.close() tc = [line.replace('\r\n', '\n') for l.. 더보기
Command-line argument 일반적인 프로그래밍을 할 때 int main() { ... return 0; } 이런식으로 많이 할 텐데, 메인함수의 형태를 다음과 같이 바꿔주면, 준비가 끝난다. int main(int argc, char* argv[]) int main(int argc, char** argv) argc, argv는 각각 argument count, argument vector이다. 그러면 확인은 어떻게 할까?.. 예상하신대로 하면 됩니다. int main(int argc, char* argv[]) { unsigned int i; for( i=0 ; i 더보기