Right, but these kids don't seem to be. The argument I'm getting is "OK,
but even if we pass an explicit length, people will assume the return is
null-terminated". I say, "They'll learn"...


On Fri, Jun 28, 2013 at 8:29 PM, Charles Mills <charl...@mcn.org> wrote:

> Yes, character arrays and an explicit length. C programmers are quite used
> to this, viz. memcpy() etc.
>
> Charles
>
> -----Original Message-----
> From: IBM Mainframe Discussion List [mailto:IBM-MAIN@LISTSERV.UA.EDU] On
> Behalf Of zMan
> Sent: Friday, June 28, 2013 12:53 PM
> To: IBM-MAIN@LISTSERV.UA.EDU
> Subject: Theology question: Parameter formats
>
> Suppose you're defining an API, to be callable from multiple languages,
> including C. You believe/assume that C will be the most common language on
> non-z platforms (probably reasonable, FSVO "reasonable"), but you also need
> to be callable on z.
>
> Would you:
> a) Design the API to pass data/length pairs
> b) Use null-terminated strings to keep the C people happy, and have to
> create some sort of layer for languages like COBOL to keep usage from that
> world sane?
>
> (Yes, I know about z' variables in COBOL, but people aren't used to and in
> my experience aren't fond of those. And there are a lot of languages out
> there to consider besides COBOL!)
>
> My contention is that C folks can surely understand the concept of passing
> a
> length, especially since C validates parameters -- that is, if a C person
> might expect to call SOMEFUNCTION(char*, char*)
>
> and instead the function definition is
> SOMEFUNCTION(char*, int*, char*, int*)
> they shouldn't exactly be confused. Surely they understand the *concept* of
> a length.
>
> But people are whining: "But this is how C works -- that's what strings
> are!".
>
> How do most other APIs deal with this? I've not really written applications
> this century (or, to be honest, the last one) -- always done systems stuff.
>
> As part of this discussion, I've had the epiphany that people don't
> *expect* to be able to call existing code from random languages--they think
> there will need to be some kind of shim layer. So they're quite surprised
> that as z folks, we expect an API to be callable from pretty well any
> language (modulo pathologies like COBOL's inability to do dynamic memory
> allocation).
>
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN
>



-- 
zMan -- "I've got a mainframe and I'm not afraid to use it"

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to