2013-01-03 2 views
2

C 라이브러리를 표준 라이브러리의 ctypes 모듈을 사용하여 파이썬으로 이식하거나 파이썬으로 작성할 수있는 곳을 많이 읽었습니다.ctypes를 통해 파이썬에 C 라이브러리 이식하기

필자는 help ('ctypes') 페이지를 살펴보고 파이썬에서 C 구조체를 만들 수 있지만 제 질문은 기본 시스템 호출에 액세스하는 방법입니다. 예를 들면. 'sys/if.h'와 같은 것을 파이썬에 이식하려고 할 때?

다른 사람이 동일한 리소스와 관련하여 좋은 자료/문서를 가르쳐 줄 수 있습니까?

+0

왜 Cython/Pyrex를 사용하지 않습니까? – jrd1

+0

저는 이것에 대해 잘 모르겠지만 Cython은 별도의 Cython 컴파일러/인터프리터가 필요하다고 생각합니까? 나는 그것을 프로젝트의 일부로 사용할 수 없다. 하지만 Cython을 대체 할 수있는 정보에 대해서는 감사하겠습니다. – ffledgling

+0

그렇습니다. 그러나 일반적인 모듈처럼 Python 자체에 설치하면됩니다 :'python setup.py install'. 유일한 요구 사항은 C 컴파일러가 필요하다는 것입니다. [here] (http://wiki.cython.org/Installing)에서 볼 수 있습니다. – jrd1

답변

3

당신은 시스템에 액세스은이 같은 것을 할 수있는 호출하려면 다음

>>> from ctypes import CDLL 
>>> libc = CDLL('libc.so.6') 
>>> print libc.strlen('abcde') 
5 

참조 : http://blog.bstpierre.org/using-pythons-ctypes-to-make-system-calls

또는 (이 까다로운 부분입니다)

랩 시스템을 여기에 설명 된대로 C 코드로 전화하십시오 :

How to reimplement (or wrap) a syscall function in linux?

그리고, 여기에 따라,하는 ctypes에 의해 사용됩니다 준수 소스 코드 파일 쓰기 :

http://www.scipy.org/Cookbook/Ctypes

난이 도움이되기를 바랍니다 있습니다.

+0

나는 대답을 받아들이 기 전에 이것을 시험해보아야한다. 당신이 꺼리지 않기를 바랍니다. :) – ffledgling

+0

아무 문제 없어, @ Ayos - 그 Stackoverflow의 요점. ;) – jrd1

관련 문제