나는 내 자신의 C 코드에서 루비 코드를 호출하고 싶다. 예외가 발생하는 경우, 내가 호출하는 루비 코드를 rb_protect해야합니다. rb_protect은 다음과 같습니다 루비의 모든 것을 rb_protect하는 방법
VALUE rb_protect(VALUE (* proc) (VALUE), VALUE data, int * state)
그래서
proc
는
VALUE
인수를하고
VALUE
을 반환하는 함수이어야한다. 그런 식으로 작동하지 않는 많은 함수를 호출해야합니다.
rb_protect
예외 발생을 어떻게 방지 할 수 있습니까?
Data_Make_Struct
을 사용하여 모든 것을 하나의 루비 객체로 래핑하고 그 객체에 대한 메소드를 호출하는 방법을 생각해 보았습니다. Data_Make_Struct
자체가 예외를 발생시킬 수 있습니다. 어떻게해야합니까 rb_protect
Data_Make_Struct
?