[erlang-questions] 'C' Driver Question

Bob Cowdery <>
Thu Sep 7 15:57:03 CEST 2006


Thank you, that fixed it. It wasn't obvious to me the name had to be the filename. Nice to see this group looks fairly active, good to know when starting out.


-----Original Message-----
[mailto:]On Behalf Of Serge Aleynikov
Sent: 07 September 2006 14:20
To: Erlang/OTP discussions
Subject: Re: [erlang-questions] 'C' Driver Question

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 

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



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

erlang-questions mailing list


More information about the erlang-questions mailing list