[erlang-questions] 'C' Driver Question

Serge Aleynikov serge@REDACTED
Thu Sep 7 15:20:24 CEST 2006


What this means is that the driver name doesn't match filename.  Most 
likely you gave an inconsistent name to your driver in the ErlDrvEntry 
structure, it should be:

ErlDrvEntry sample_driver_entry = {
     ...
     "liber_driver",   /* char *driver_name, the argument to open_port */
     ...
};

Also you can make the error reason more verbose by using 
erl_ddll:format_error/1:

case erl_ddll:load_driver(".", liber_driver) of
ok ->
    ...;
{error, Reason} ->
    {error, erl_ddll:format_error(Reason)}
end.

Regards,

Serge

Bob Cowdery wrote:
> Hi
> 
> I've just started to use Erlang and this is my first post. I have a requirement to communicate between two parts of a 'C' program. One part will be a C Port and the other a C Driver type implementation. The C Port side is working but I'm having trouble with the C Driver. I have been following the examples in the Interoperability Tutorial, so first off I just wantsed to roughly follow the examples. I have built the shared library but I can't load it. This is under Ubuntu Linux incidentally. I have a library called liber_driver.so and I try to load it with 
> 
> erl_ddll:load_driver(".", liber_driver).
> 
> I know it's loading the file because it first gave me some unresolved errors. When I fixed those it now says
> 
> {error,bad_driver_name}
> 
> I have no idea what this means, any help appreciated.
> 
> Regards
> Bob
> 




More information about the erlang-questions mailing list