Das Problem ist die Variable "errno", die natürlich Klein geschrieben wird.

"By content" sind immer Single-Datentypen (int, char, float, long, double, byte, ...)
"By reference" sind immer Pointer (Adressen) in der C-Syntax char*, long*, int*, ...

Ausgabeparameter können sowohl Single-Daten sein (sprich Felder) oder Adressen (Pointer).
Pointer sind in COBOL etwas schwieriger:
77 MyPointer usage pointer.

Linkage Section.

01 MyVar pic x(..).

* MyVar wird nun NICHT in der Procedure-Division mit "using" aufgeführt.
Die Adresse wird mit:
"set address of MyVar to mypointer" gesetzt !!! (goil nicht ?)

MyVar kann sowohl Strukturen als auch wieder Single-Data enthalten.
Beispiel ist "struct tm *localtime()", diese Funktion liefert einen Pointer auf eine Struktur.