linked-in driver

Serge Aleynikov <>
Wed Jun 1 16:59:29 CEST 2005


Thanks Shawn!

I'd like to add a little note that this also works fine with 
erlang:open_port({spawn, "mydrv param1 param2"}, ...)

Shawn Pearce wrote:
> Serge Aleynikov <> wrote:
> 
>>I need to pass parameters to the start function of a linked-in driver, 
>>but I am not sure how this can be done.
>>
>>The start function accepts a char* command.  Is there a way to pass 
>>anything there besides the driver's name?
>>
>>int start(ErlDrvPort port, char* command);
>>
>>After examining erlang:open_port/2 I found the {env, Environment} 
>>option, but I believe it only works for port drivers.
>>
>>Any advice on the subject is appreciated.
> 
> 
> 
> Pass the parameters as part of the driver string to open_port.  E.g.
> 
> erlang:open_port("mydrv param1 param2", ...)
> 
> will give you the string "mydrv param1 param2" in the command parameter
> of the start function in your C code.  You will have to parse out the
> parameters on your own.  I believe the only requirement on the format
> of this string is that the characters leading up to the first ASCII
> space match the name of the driver; the rest is left up to the driver.




More information about the erlang-questions mailing list