GENCSRC
Générer source C/C++
Generate C/C++ Source
En bref
La commande Générer une source C/C++ (GENCSRC) fait correspondre les informations d'un fichier décrit de manière externe aux structures équivalentes pouvant être incluses dans des programmes ILE C ou ILE C++. The Generate C/C++ Source (GENCSRC) command maps externally-described file information to the equivalent structures that can be included into ILE C or ILE C++ programs.
GENCSRC se lit GEN
(Générer) + CSRC.
Sur IBM i, le nom d'une commande associe presque toujours un verbe et un objet.
Syntaxe minimale
GENCSRC
Paramètres
-
OBJÀ partir de l'objet From object -
SRCFILEVers le fichier source To source file -
SRCMBRVers le membre source To source member -
SRCSTMFVers le fichier STREAM source To source stream file -
RCDFMTFormat d'enregistrement Record format -
SLTFLDSélectionner des zones Select fields -
PKDDECFLDZones décimales condensées Packed decimal fields -
STRUCTUREStructures -
ONEBYTEZones de caractère d'un octet 1-byte character fields -
UNIONDFNNom de définition d'union Union definition name -
TYPEDEFPFXPréfixe typedef Typedef prefix
Astuce : dans une session 5250, tapez GENCSRC puis F4 pour
l'invite de saisie, et F1 sur un paramètre pour son aide.
Aide IBM i de la commande
Texte du F1, IBM i 7.5 en français
(bibliothèque QDEVTOOLS)
Où s'exécute : Tous les environnements (*ALL)
Compatible multitâche : Non
La commande Générer une source C/C++ (GENCSRC) fait correspondre les informations d'un fichier décrit de manière externe aux structures équivalentes pouvant être incluses dans des programmes ILE C ou ILE C++. Les structures générées à partir de l'objet fichier indiqué sont écrites dans un membre de fichier source ou dans un fichier STREAM. The Generate C/C++ Source (GENCSRC) command maps externally-described file information to the equivalent structures that can be included into ILE C or ILE C++ programs. The structures generated from the specified file object are written to either a source file member or a stream file.
Paramètres
| Mot-clé | Description | Valeurs possibles | Remarques |
|---|---|---|---|
| OBJ | À partir de l'objetFrom object | Chemin d'accès | Facultatif, positionnel 1 |
| SRCFILE | Vers le fichier sourceTo source file | Nom d'objet qualifié | Facultatif |
| Qualificatif 1: Vers le fichier sourceQualificatif 1: To source file | Nom | ||
| Qualificatif 2: BibliothèqueQualificatif 2: Library | Nom, *CURLIB | ||
| SRCMBR | Vers le membre sourceTo source member | Nom, *OBJ | Facultatif |
| SRCSTMF | Vers le fichier STREAM sourceTo source stream file | Chemin d'accès | Facultatif |
| RCDFMT | Format d'enregistrementRecord format | Valeurs uniques: *ALL Autres valeurs (jusqu'à 20 répétitions): Nom |
Facultatif |
| SLTFLD | Sélectionner des zonesSelect fields | Values (jusqu'à 7 répétitions): *BOTH, *OUTPUT, *INPUT, *KEY, *INDICATOR, *LVLCHK, *NULLFLDS, *USESYSNAM | Facultatif |
| PKDDECFLD | Zones décimales condenséesPacked decimal fields | *DECIMAL, *CHAR | Facultatif |
| STRUCTURE | Structures | *PACKED, *NONPACKED | Facultatif |
| ONEBYTE | Zones de caractère d'un octet1-byte character fields | *ARRAY, *CHAR | Facultatif |
| UNIONDFN | Nom de définition d'unionUnion definition name | Valeur caractère, *OBJ, *NONE | Facultatif |
| TYPEDEFPFX | Préfixe typedefTypedef prefix | Valeur caractère, *OBJ, *NONE | Facultatif |
À partir de l'objet (OBJ)From object (OBJ)
Indique l'objet à mapper, qui doit être un objet *FILE du système de fichiers QSYS. Specifies the object to map, which must be a *FILE object in the QSYS file system.
Vers le fichier source (SRCFILE)To source file (SRCFILE)
Indique le fichier physique qui contiendra les structures générées. Le fichier physique doit exister. Specifies the physical file that will contain the generated structures. The physical file must exist.
Remarque :Assurez-vous que la longueur d'enregistrement du fichier physique est suffisante pour éviter une troncature des données. Remarque :Ensure that the record length of the physical file is large enough to avoid truncation of the data.
Qualificatif 1: Vers le fichier source Qualificatif 1: To source file
- nom
- Indiquez le nom d'un fichier existant. Specify the name of an existing file.
Qualificatif 2 : Bibliothèque Qualificatif 2: Library
- *CURLIB
- La bibliothèque en cours du travail est utilisée pour localiser le fichier physique. Si aucune entrée de bibliothèque en cours n'existe dans la liste de bibliothèques, QGPL est utilisée. The current library for the job is used to locate the physical file. If no current library entry exists in the library list, QGPL is used.
- nom
- Indiquez le nom de la bibliothèque où se trouve le fichier. Specify the name of the library where the file is located.
Vers le membre source (SRCMBR)To source member (SRCMBR)
Indique le nom du membre de fichier qui contiendra les structures mappées. Si un membre portant ce nom n'existe pas, il est ajouté automatiquement. Les enregistrements d'un membre existant portant ce nom seront remplacés. Specifies the name of the file member which will contain the mapped structures. If a member by this name does not exist, it will be added automatically. The records in an existing member by this name will be replaced.
- *OBJ
- Le nom d'objet dérivé du paramètre À partir de l'objet (OBJ) sera utilisé comme nom de membre. The object name derived from the From object (OBJ) parameter will be used as the member name.
- nom
- Indiquez le nom du membre de fichier devant contenir les structures C/C++ générées. Specify the name of the file member to contain the generated C/C++ structures.
Vers le fichier STREAM source (SRCSTMF)To source stream file (SRCSTMF)
Indique le fichier STREAM qui contiendra les structures générées. Tous les répertoires du chemin d'accès du fichier STREAM doivent exister. Si un fichier portant ce nom n'existe pas, il est créé automatiquement. Les données d'un fichier existant portant ce nom seront remplacées. Specifies the stream file that will contain the generated structures. All directories in the stream file's path must exist. If a file by this name does not exist, it will be created automatically. The data in an existing file by this name will be replaced.
- chemin-d'accès
- Indiquez le chemin d'accès complet du fichier STREAM devant contenir le code source généré. Specify the complete path name of the stream file to contain the generated source code.
Format d'enregistrement (RCDFMT)Record format (RCDFMT)
Indique les formats d'enregistrement du fichier pour lesquels des structures C/C++ doivent être générées. Specifies which record formats of the file are to have C/C++ structures generated.
Valeurs uniques
- *ALL
- Des structures seront générées pour tous les formats d'enregistrement du fichier. All record formats for the file will have structures generated.
Autres valeurs
- nom
- Indiquez les formats d'enregistrement pour lesquels des structures seront générées. Un maximum de 20 formats d'enregistrement peuvent être indiqués. Specify which record formats will have structures generated. A maximum of 20 record formats can be specified.
Sélectionner des zones (SLTFLD)Select fields (SLTFLD)
Indique le type d'utilisation des zones qui seront mappées. Specifies the usage type of fields that will be mapped.
Vous pouvez indiquer 7 valeurs pour ce paramètre. You can specify 7 values for this parameter.
- *BOTH
- Les zones déclarées INPUT, OUTPUT ou BOTH dans les DDS sont incluses dans la structure typedef. Les indicateurs d'option et de réponse sont inclus dans les deux structures, sauf si le mot clé INDARA est indiqué dans la description externe du fichier pour les fichiers d'unité. Fields declared as INPUT, OUTPUT, or BOTH in the DDS are included in the typedef structure. Option and response indicators are included in both structures unless the keyword INDARA is specified in the external file description for device files.
- *INPUT
- Les zones déclarées INPUT ou BOTH sont incluses dans les structures mappées. Les indicateurs de réponse sont inclus dans la structure d'entrée, sauf si le mot clé INDARA est indiqué dans la description externe du fichier pour les fichiers d'unité. Fields declared as either INPUT or BOTH are included in the mapped structures. Response indicators are included in the input structure unless the keyword INDARA is specified in the external file description for device files.
- *OUTPUT
- Les zones déclarées OUTPUT ou BOTH sont incluses dans les structures d'enregistrement. Les indicateurs d'option sont inclus dans la structure de sortie, sauf si le mot clé INDARA est indiqué dans la description externe du fichier pour les fichiers d'unité. Fields declared as either OUTPUT or BOTH are included in the record structures. Option indicators are included in the output structure unless the keyword INDARA is specified in the external file description for device files.
- *KEY
- Les zones déclarées comme clés dans la description externe du fichier sont incluses. Cette option n'est valide que pour les fichiers de base de données et les fichiers DDM. Fields declared as keys in the external file description are included. This option is only valid for database files and DDM files.
- *INDICATOR
- Une structure distincte de 99 octets pour les indicateurs est créée lorsque l'option des indicateurs est indiquée. Cette option n'est valide que pour les fichiers d'unité. A separate 99-byte structure for indicators is created when the indicator option is specified. This option is only valid for device files.
- *LVLCHK
- Un typedef d'un tableau de struct, nommé _LVLCHK_T, est généré. Un pointeur vers un objet de type _LVLCHK_T est également généré et initialisé avec les informations de contrôle de niveau (nom de format et identificateur de niveau). A typedef of an array of struct is generated, named _LVLCHK_T. A pointer to an object of type _LVLCHK_T is also generated and is initialized with the level check information (format name and level identifier).
- *NULLFLDS
- S'il existe au moins une zone pouvant contenir la valeur null dans le format d'enregistrement des DDS, un typedef de table des valeurs null est généré, contenant une zone de type caractère pour chaque zone du format. Avec ce typedef, vous pouvez indiquer les zones qui doivent être null (définir la valeur de chaque zone null sur '1', sinon sur '0'). De plus, si l'option *KEY est utilisée avec l'option *NULLFLDS et qu'il existe au moins une zone clé pouvant contenir la valeur null dans le format, un typedef supplémentaire est généré, contenant une zone de type caractère pour chaque zone clé du format. If there is at least one null-capable field in the record format of the DDS, a null map typedef is generated containing a character field for every field in the format. With this typedef, you can specify which fields are to be null (set value of each null field to '1', otherwise set to '0'). Also, if the *KEY option is used along with the *NULLFLDS option, and there is at least one null-capable key field in the format, an additional typedef is generated containing a character field for every key field in the format.
- *USESYSNAM
- Indique que les noms de zone système seront utilisés dans la structure typedef générée par le compilateur. Si *USESYSNAM n'est pas indiqué, le compilateur utilisera les noms ALIAS (pour les DDS) ou les noms de zone (pour SQL) dans la structure typedef générée. Specifies that the system field names will be used in the typedef structure that is generated by the compiler. If *USESYSNAM is not specified, the compiler will use the ALIAS names (for DDS) or the field names (for SQL) in the typedef structure that is generated.
Pour les fichiers physiques et logiques, vous pouvez indiquer *INPUT, *BOTH, *KEY, *LVLCHK, *USESYSNAM et *NULLFLDS. Pour les fichiers d'unité, vous pouvez indiquer *INPUT, *OUTPUT, *BOTH, *INDICATORS, *USESYSNAM et *LVLCHK. For physical and logical files, you can specify *INPUT, *BOTH, *KEY, *LVLCHK, *USESYSNAM, and *NULLFLDS. For device files you can specify *INPUT, *OUTPUT, *BOTH, *INDICATORS, *USESYSNAM, and *LVLCHK.
Zones décimales condensées (PKDDECFLD)Packed decimal fields (PKDDECFLD)
Indique le mappage des zones décimales condensées. Specifies the mapping of packed decimal fields.
- *DECIMAL
- Les zones décimales condensées sont déclarées comme des types de données _Decimal. Packed decimal fields are declared as _Decimal data types.
- *CHAR
- Les zones décimales condensées sont déclarées comme des tableaux de caractères. Packed decimal fields are declared as character arrays.
Structures (STRUCTURE)
Indique si des structures condensées sont générées ou non. Specifies whether or not packed structures are generated.
- *PACKED
- Des structures condensées sont générées. Packed structures are generated.
- *NONPACKED
- Des structures condensées ne sont pas générées. Packed structures are not generated.
Zones de caractère d'un octet (ONEBYTE)1-byte character fields (ONEBYTE)
Indique si un tableau ou un caractère unique est généré pour les zones d'un octet. Specifies whether an array or a single character is generated for one-byte fields.
- *ARRAY
- Un tableau de char à un élément est généré pour les caractères d'un octet. A one-element array of char is generated for one-byte characters.
- *CHAR
- Une zone de caractère d'un octet est générée pour les caractères d'un octet. A single-byte character field is generated for one-byte characters.
Nom de définition d'union (UNIONDFN)Union definition name (UNIONDFN)
Indique les noms d'union générés. Specifies the union names generated.
- *OBJ
- Utilisez le nom de fichier dérivé du paramètre OBJ. Use the file name derived from the OBJ parameter.
- *NONE
- Aucune union n'est générée. No union is generated.
- union-name
- Génère une définition d'union portant le nom union-name_t. La longueur maximale est de 50 caractères. Generate a union definition with the name union-name_t. Maximum length is 50 characters.
Préfixe typedef (TYPEDEFPFX)Typedef prefix (TYPEDEFPFX)
Indique le préfixe des structures générées. Specifies the prefix for the generated structures.
- *OBJ
- Utilisez le nom de fichier dérivé du paramètre OBJ. Use the file name derived from the OBJ parameter.
- *NONE
- N'utilisez pas de préfixe pour les structures générées. Do not use a prefix for the generated structures.
- prefix-name
- Indiquez un préfixe pour le nom de structure. La longueur maximale est de 50 caractères. Specify a prefix for the structure name. Maximum length is 50 characters.
Exemples
Exemple 1 : Création du mappage de tous les formats d'enregistrement Example 1: Create Mapping of All Record Formats
GENCSRC OBJ('/QSYS.LIB/QTEMP.LIB/MYTBL.FILE')
SRCFILE(QTEMP/H)
Cette commande crée un mappage pour tous les formats d'enregistrement de l'objet fichier MYTBL de la bibliothèque QTEMP. Le mappage est stocké dans le membre MYTBL du fichier source H de la bibliothèque QTEMP. This command creates a mapping for all record formats of file object MYTBL in library QTEMP. The mapping is stored in member MYTBL of source file H in library QTEMP.
Le mappage généré peut être inclus dans un programme C/C++ avec l'instruction include suivante. The generated mapping can be included into a C/C++ program with the following include statement.
#include "QTEMP/H(MYTBL)"
Exemple 2 : Création du mappage d'un format d'enregistrement Example 2: Create Mapping for One Record Format
GENCSRC OBJ('/QSYS.LIB/QTEMP.LIB/MYTBL.FILE')
SRCSTMF('/tmp/myHdr.h') RCDFMT(PRSNL)
SLTFLD(*INPUT) PKDDECFLD(*CHAR)
STRUCTURE(*NONPACKED) TYPEDEFPFX(TAB1)
Cette commande crée un mappage pour le format d'enregistrement PRSNL de l'objet fichier MYTBL de la bibliothèque QTEMP. Seules les zones d'entrée du format d'enregistrement sont mappées. La structure générée ne sera pas condensée ; elle contiendra des tableaux de char à la place des données décimales condensées de l'enregistrement, et le nom de la structure sera préfixé par TAB1. Le mappage sera stocké dans le fichier STREAM /tmp/myTbl.h. This command creates a mapping for record format PRSNL of file object MYTBL in library QTEMP. Only the input fields in the record format are mapped. The generated structure will not be packed, it will contain char arrays in place of packed decimal data in the record, and the name of the structure will be prefixed with TAB1. The mapping will be stored in the stream file /tmp/myTbl.h.
Le mappage généré peut être inclus dans un programme C/C++ avec l'instruction include suivante. The generated mapping can be included into a C/C++ program with the following include statement.
#include "/tmp/myTbl.h"
Messages d'erreur
Messages *ESCAPE *ESCAPE Messages
- CZM2613
- GENCSRC n'a pas pu générer le fichier include. GENCSRC failed to generate include file.
© Copyright IBM Corp. Texte d'aide reproduit à des fins de formation.