목차
- 리눅스 C 언어 SO 동적 라이브러리 생성 예제 이전 포스팅 링크 및 설명
- 파이썬 현재 컴퓨터 아이피 주소 확인 예제 이전 포스팅 링크 및 설명
- 파이썬 도메인 주소 아이피 변환 프로그램 만들기 예제 이전 포스팅 링크 및 설명
- 파이썬 예제를 위해 간단한 덧셈 C언어 so 라이브러리 생성 예제
- 파이썬 ctypes로 so 라이브러리의 함수 호출 및 결과 출력 예제
리눅스 C 언어 SO 동적 라이브러리 생성 예제 이전 포스팅 링크 및 설명
리눅스에서 C 언어로 작성된 코드를 동적 라이브러리(SO, Shared Object)로 만드는 방법에 대해 이전에 다룬 포스팅이 있습니다. 동적 라이브러리는 실행 시점에 메모리에 로드되어, 여러 프로그램이 공유하여 사용할 수 있습니다. 또한, 프로그램의 크기를 줄이고, 코드의 재사용성을 높일 수 있어 매우 효과적입니다. 이전 포스팅에서는 C 언어로 동적 라이브러리를 생성하는 방법에 대해 자세히 설명하였으니, 해당 포스트를 참고해보세요.
2023.09.18 - [Java] - [Java/C] 자바에서 C 사용을 위한 JNI 소스코드 컴파일 및 라이브러리 생성 예제(so 라이브러리)
파이썬 현재 컴퓨터 아이피 주소 확인 예제 이전 포스팅 링크 및 설명
다음으로 컴퓨터의 현재 아이피 주소를 파이썬으로 확인하는 방법에 대해 이전에 다룬 포스팅이 있습니다. 인터넷에 연결된 모든 컴퓨터는 고유한 아이피 주소를 가지고 있으며, 이를 통해 컴퓨터 간의 통신이 이루어집니다. 이전 포스팅에서는 파이썬을 이용해 현재 컴퓨터의 아이피 주소를 확인하는 방법에 대해 자세히 설명하였으니, 해당 포스트를 참고해보세요.
2023.11.01 - [Python] - [Python/Linux] 파이썬 현재 PC 아이피 주소 확인 및 목록 출력 예제(socket.gethostbyname)
파이썬 도메인 주소 아이피 변환 프로그램 만들기 예제 이전 포스팅 링크 및 설명
마지막으로 도메인 주소를 아이피 주소로 변환하는 파이썬 프로그램 만드는 방법에 대해 이전에 다룬 포스팅이 있습니다. 도메인 주소를 아이피 주소로 변환하는 것은 웹 서버에 접속하거나, 네트워크 문제를 진단하는 등 다양한 상황에서 필요합니다. 이전 포스팅에서는 도메인 주소를 아이피 주소로 변환하는 간단한 파이썬 프로그램을 만드는 방법을 자세히 설명하였으니, 해당 포스트를 참고해보세요.
2023.12.06 - [Linux] - [Linux/Ubuntu] 리눅스 /etc/hosts 로컬 도메인 및 아이피 설정 예제 - 2(* 사용하여 하위 도메인 포함 설정)
파이썬 예제를 위해 간단한 덧셈 C언어 so 라이브러리 생성 예제
C 언어로 작성된 간단한 덧셈 함수를 포함하는 SO 라이브러리를 만드는 방법에 대해 알아보도록 하겠습니다. so 라이브러리를 만들면, 이를 다른 프로그램에서 재사용할 수 있습니다. 특히, 파이썬과 같은 고수준 언어에서 C 언어로 작성된 라이브러리를 사용하면, 성능을 향상시킬 수 있습니다. 아래는 덧셈 함수를 포함하는 간단한 C 언어 so 라이브러리를 생성하는 예제입니다. so 라이브러리 생성 방법은 이전 포스팅을 참고하셔도 됩니다.
우선 C 코드 입니다.
// add.c
#include <stdio.h>
int add(int a, int b) {
return a + b;
}
이후 아래와 같이 gcc를 사용하여 so 라이브러리로 빌드합니다.
$ gcc -shared -o libadd.so add.c
$ ls -al libadd.so
파이썬 ctypes로 so 라이브러리의 함수 호출 및 결과 출력 예제
파이썬에서 ctypes 모듈을 사용하여 C 언어로 작성된 SO 라이브러리의 함수를 호출할 수 있습니다. ctypes 모듈은 파이썬에서 C 언어의 데이터 타입과 함수를 사용할 수 있게 해줍니다. 이를 이용하면, 파이썬에서 C 언어로 작성된 코드를 쉽게 사용할 수 있습니다. 아래는 ctypes를 이용하여 덧셈 함수를 포함하는 SO 라이브러리를 호출하고, 결과를 출력하는 예제입니다.
# add.py
from ctypes import *
# 동적 라이브러리 로드
libadd = CDLL('/tmp/libadd.so')
# 덧셈 함수 호출
result = libadd.add(3, 4)
# 결과 출력
print(result) # 출력: 7