출처 : https://github.com/node-ffi/node-ffi
디렉토리 생성
root@server:~/ffi-napi# node -v
v12.19.0
mkdir ffi-napi
cd ffi-napi
npm install ffi-napi
factorial.c
#include <stdio.h> int factorial(int max) { int i = max; int result = 1; while (i >= 2) { result *= i--; } return result; } int main(void) { printf("%d\n", factorial(6)); return 0; } |
공유라이브러리 컴파일
gcc -shared -fpic factorial.c -o libfactorial.so
factorial.js
var ffi = require('ffi-napi'); var libfactorial = ffi.Library('./libfactorial', { 'factorial': [ 'uint64', [ 'int' ] ] }) if (process.argv.length < 3) { console.log('Arguments: ' + process.argv[0] + ' ' + process.argv[1] + ' <max>') process.exit() } var output = libfactorial.factorial(parseInt(process.argv[2])) console.log('Your output: ' + output) |
실행
root@server:~/ffi-napi# node factorial.js 3
Your output: 6
root@server:~/ffi-napi# node factorial.js 7
Your output: 5040
'nodejs' 카테고리의 다른 글
DISCORD bot 제작 (0) | 2021.10.22 |
---|---|
MongoError: Cannot use a session that has ended (0) | 2021.07.20 |
nodejs 버전 업데이트 하기 (0) | 2021.07.15 |
nodemon 설정 방법 (0) | 2020.12.09 |
axios 전송 (0) | 2020.12.08 |