CALL e Linkage Subprogrammi
Data corruption in COBOL-C interop: C expects null-terminated string, COBOL passed space-padded PIC X(20) – COBOL COBOL_C_ABI_MISMATCH
Le stringhe COBOL sono fisse e riempite di spazi a destra ('PIC X(20)'), mentre le funzioni C si aspettano puntatori a caratteri terminati dal byte nullo '\0' (richiedendo 'STRING ... DELIMITED BY SIZE, X"00"').
Cosa significa questo errore?
Le stringhe COBOL sono fisse e riempite di spazi a destra ('PIC X(20)'), mentre le funzioni C si aspettano puntatori a caratteri terminati dal byte nullo '\0' (richiedendo 'STRING ... DELIMITED BY SIZE, X"00"').
Messaggio originale
Data corruption in COBOL-C interop: C expects null-terminated string, COBOL passed space-padded PIC X(20)Contesto e parole chiave
Alias
- COBOL C interop string null termination
Messaggi alternativi
- disallineamento formato stringhe interoperabilità C e COBOL
Prodotti
- GnuCOBOL (cobc) / IBM Enterprise COBOL / Micro Focus
Piattaforme
- AIX
- IBM z/OS
- Linux
- Windows
Parole chiave
- CALL e Linkage Subprogrammi
- cobol
- cobol.linkage.c-interop-cobol-c-abi-type-mismatch
- errore-cobol-c-interop-abi-type-mismatch
- file-status
- gnucobol
Cause possibili
Causa tecnica per Errore COBOL C-Interop: Disallineamento ABI Stringhe (Spazi vs Terminatore Nullo)
Le stringhe COBOL sono fisse e riempite di spazi a destra ('PIC X(20)'), mentre le funzioni C si aspettano puntatori a caratteri terminati dal byte nullo '\0' (richiedendo 'STRING ... DELIMITED BY SIZE, X"00"').
molto comuneDiagnosi
Diagnostica di esecuzione e file status per Errore COBOL C-Interop: Disallineamento ABI Stringhe (Spazi vs Terminatore Nullo)
Ispezionare la variabile FILE-STATUS, i log di runtime o compilare con i controlli di integrità di GnuCOBOL (-Wall -Wextra -fdebugging-line).
Come leggere il risultato. Evidenzia violazioni dei margini di colonna, disallineamenti nelle clausole PIC o codici di ritorno anomali.
cobc -x -Wall -Wextra main.cob -o appRisoluzione
Risoluzione standard per Errore COBOL C-Interop: Disallineamento ABI Stringhe (Spazi vs Terminatore Nullo)
Applicare la correzione al codice sorgente COBOL secondo le specifiche ANSI/ISO COBOL.
- Ispezionare il valore della variabile FILE STATUS o il numero di riga del compilatore
- Correggere la dichiarazione FD, la PICTURE o la sequenza di OPEN/READ/WRITE
- Ricompilare ed eseguire verificando la corretta terminazione con RETURN-CODE 0
cobc -x main.cobDomande frequenti
Cosa significa Errore COBOL C-Interop: Disallineamento ABI Stringhe (Spazi vs Terminatore Nullo) in COBOL?
Le stringhe COBOL sono fisse e riempite di spazi a destra ('PIC X(20)'), mentre le funzioni C si aspettano puntatori a caratteri terminati dal byte nullo '\0' (richiedendo 'STRING ... DELIMITED BY SIZE, X"00"').
Approfondimenti
- GnuCOBOL Manual / IBM Enterprise COBOL Documentation documentazione_ufficiale