[erlang-questions] Port Driver, outputv, binaries.

Matthew Sackman <>
Thu Dec 10 12:20:07 CET 2009


Hi Tony,

Thank you very much for your email - that's very helpful.

I have one further question:

If I construct and send a binary with port_command, can I be guaranteed
that it'll not be split across two or more different binvs?

Eg

a) port_command(Port, [<<1,2,3>>]), or
b) port_command(Port, [<<"foo">>]), or
c) port_command(Port, [<<"foo",0>>]), or

c) is particularly important to me because I've noticed that if you send
a string down, it doesn't get null terminated, so sticking the extra 0
on the end is very important. It would be somewhat horrendous if that 0
could end up in a different binv entry from the "foo".

How about:

d) D = <<1>>, port_command(Port, [<<D/binary, 0, <<255>>/binary, <<"wibble">>/binary>>])

Is it safe to rely a binary being an atomic unit?

Matthew


More information about the erlang-questions mailing list