다른 방향으로 driver_output_term
의 동등 물이 있습니까? 즉, iolist로 먼저 변환하지 않고 Erlang 용어를 드라이버로 보냅니다. 그렇지 않다면 아마도 term_to_binary
을 사용하여 내 용어를 변환하고 ei
과 함께 C면에서 구문 분석해야합니다. 좋은 예가 있습니까?iolists 대신 Erlang 드라이버로 보내기
1
A
답변
2
문서에 따르면 iodata()
형식의 콘텐츠 만 보낼 수 있습니다.
Erlang 설명서의 this tutorial에서와 같이 드라이버에 보낼 문자열이 모두 정수와 문자열 인 경우 자체 용어 - 요오드화 문자 인코딩을 사용하는 것이 더 효율적일 수 있습니다. 함수를 사용하여 호출을 드라이버로 직접 전송할 수있는 매핑으로 변환하므로 term_to_binary()
을 사용하여 인코딩 할 필요가 없습니다. X
및 Y
이 작은 정수라고 가정한다면
encode({foo, X}) -> [1, X];
encode({bar, Y}) -> [2, Y].
이 매핑 가능하다. C면에 는, 입력 버퍼의 첫번째 바이트는 인수와 두번째 바이트를 사용하여 해당 함수를 호출 할 때 전환되어
static void example_drv_output(ErlDrvData handle, char *buff, int bufflen)
{
example_data* d = (example_data*)handle;
char fn = buff[0], arg = buff[1], res;
if (fn == 1) {
res = foo(arg);
} else if (fn == 2) {
res = bar(arg);
}
driver_output(d->port, &res, 1);
}
관련 문제
- 1. Erlang : 닫힌 연결로 보내기
- 2. 예상 스크립트 대신 /로 erlang 사용
- 3. Erlang/Erlmongo : Mongo 배열
- 4. Erlang : 후크 대 gen_event
- 5. Erlang (일식)에서 Erlang 샘플 프로젝트
- 6. "프로세스로 메시지"작업 큐에 대한 Erlang 디자인 패턴은 무엇입니까?
- 7. Erlang : 출력 문제
- 8. 파일 시스템 드라이버로 C# 디렉터리를 숨기려면 어떻게합니까?
- 9. 리눅스에서 JFS 드라이버로 시작하는 인수를 변경하십시오.
- 10. USB 드라이버로 사용자 공간 콜백 함수 등록
- 11. odbc Excel 드라이버로 데이터 유형 전송하기
- 12. Windows에서 Erlang 코드 컴파일
- 13. Erlang 비트 구문 변수 문제
- 14. 상업용 시스템 구축 : Pure Erlang 또는 Erlang/OTP?
- 15. Erlang 파일 추가 모드
- 16. 얼랑 (Erlang) 액티브 레코드
- 17. Erlang, 여기서 파일을 닫아야합니까?
- 18. Erlang 런타임 오류
- 19. CPU를 100 % 사용하는 erlang
- 20. erlang "erl_nif"기능
- 21. erlang : 분산 해시 테이블?
- 22. sha256 encryption in erlang
- 23. ERLANG - 타이밍 어플리케이션
- 24. 얼랑 (Erlang)의 범위
- 25. 얼랑 (Erlang)과 프로세스
- 26. erlang AMQP 클라이언트 라이브러리
- 27. 얼랭 (Erlang)과 method_missing
- 28. Erlang 응용 프로그램 문제
- 29. Erlang gen_fsm을 시각화하는 방법
- 30. erlang 클러스터에서 스폰 프로세스
불행히도 내 용어 'ei'을 사용하여 쉽게 충분히 복잡하다. –