We have encountered an unexpected implementation issue with gpc, one that
probably affects all languages implemented using C/C++: The mapping of Pascal
writeln (etc.) statements to "equivalent" C/C++ string handling code.
We have not found a pure (Pascal-only) way to use gpc writeln (etc.) statements
to send strings that must include null characters (in our case as part of a 4
byte binary time). The problem is that the implementation of the mapped C/C++
function prematurely terminates a message at the null, preventing the message from
being transmitted properly.
The impact on us is that whenever any byte of the time rolls over a
service outage results - with the length of the outage depending upon which
byte rolls over. We have since kluged a way around the issue but would
much prefer a pure Pascal (=portable) solution.
In our case the message must be sent as one complete entity, meaning separating
the string into multiple “writeln” statements is not possible. (This
would be an awkward approach if/when (multiple) nulls can appear anywhere in the
string).
Stated more generally, is there a pure gpc Pascal way to send (“writeln”)
strings that can contain any/all of the 256 8 bit characters (especially the
null) - an approach that does not require retyping our string definitions?
Any ideas out there about how to do this?
Thanks.