📄 staprint.c
字号:
/*---------------------------------------------------------------------------+-----*//* | GMD *//* SYSTEM STAPAC - Version 2.0 +-----*//* *//*---------------------------------------------------------------------------------*//* *//* PACKAGE STAMOD-staprint VERSION 2.0 *//* DATE Januar 1992 *//* BY Ursula Viebeg *//* Levona Eckstein*//* *//* FILENAME *//* staprint.c *//* *//* DESCRIPTION *//* This modul provides a function which prints the error message. *//* *//* EXPORT DESCRIPTION *//* sca_print_errmsg() print error message *//* *//* *//* *//* *//* IMPORT DESCRIPTION *//* - libsctint.a *//* *//* sct_perror() Print error message *//* *//* *//* sca_errno global error variable set by STAMOD *//* *//* sca_errmsg global pointer to error message set by STAMOD *//* *//* *//* *//* *//* INTERNAL *//* *//* *//*---------------------------------------------------------------------------------*//*-------------------------------------------------------------*//* include-Files *//*-------------------------------------------------------------*/#include "stamod.h"#include "stamsg.h"#include "sctint.h"#include "sccom.h"#ifndef MAC#include <sys/types.h>#include <sys/stat.h>#else#include <stdlib.h>#endif /* !MAC */#include <stdio.h>#include <fcntl.h>#include <string.h>/*-------------------------------------------------------------*//* extern declarations *//*-------------------------------------------------------------*/extern int sct_perror();extern unsigned int sca_errno; /* error number set by STAMOD */extern char *sca_errmsg; /* pointer to error msg set by */ /* STAMOD *//*-------------------------------------------------------------*//* globale variable definitions *//*-------------------------------------------------------------*/#ifdef TESTchar text1[27] = "file_type : ";char text2[23] = "file_type : ";void print_filecat();void print_filetype();void print_datastruc();void print_filecontinfo();void print_secmess();void print_filesel();void print_fileid();void print_inforeq();void print_closecontext();void print_datasel();void print_keyid();void print_recordlist();void print_transmode();void print_keydevpurpose();void print_keydevsel();void print_keyattrlist();void print_pinstruc();void print_keydevlist();#endif/*-------------------------------------------------------------*//* type definitions *//*-------------------------------------------------------------*//*-------------------------------------------------------------*//* local Variable definitions *//*-------------------------------------------------------------*//*-------------------------------------------------------------*//* | GMD *//* +-----*//* PROC sca_print_errmsg VERSION 2.0 *//* DATE Januar 1992 *//* BY U.Viebeg *//* *//* DESCRIPTION *//* Print the given text together with the global error *//* message on stderr. *//* *//* *//* IN DESCRIPTION *//* msg text, which is printed *//* together with error message *//* *//* *//* OUT *//* *//* *//* RETURN DESCRIPTION *//* 0 o.k *//* -1 error *//* wrong sca_errno *//* *//* CALLED FUNCTIONS *//* sct_perror ERROR-Codes *//* 0 (ok) *//* *//* *//*-------------------------------------------------------------*/intsca_print_errmsg(msg) char *msg;{ /*----------------------------------------------------------*/ /* Definitions */ /*----------------------------------------------------------*/ int rc, err_no; rc = 0; /*----------------------------------------------------------*/ /* Statements */ /*----------------------------------------------------------*/ rc = 0; /*-----------------------------------------------------*/ /* call check_sct_sc */ /*-----------------------------------------------------*/#ifdef TEST fprintf(stdout, "\n***** STAMOD-Routine sca_print_errmsg ********************************************\n\n"); fprintf(stdout, "input-parameters:\n"); if ((msg != NULL) && (strlen(msg) > 0)) { fprintf(stdout, "msg: %s\n", msg); } fprintf(stdout, "\n\n");#endif if (sca_errno <= 0) { /* no error number set */ err_no = 0; if (msg && strlen(msg)) fprintf(stdout, "%s: ", msg); fprintf(stdout, "%s\n", stamod_error[err_no].msg); } else { if (sca_errno < MIN_STAMOD_ERRNO) { rc = sct_perror(msg); /* error from SCT-Interface */ if (rc < 0) return (rc); } else { /* error from STAMOD */ err_no = sca_errno - MIN_STAMOD_ERRNO; if (err_no < 0) return (-1); if (msg && strlen(msg)) fprintf(stdout, "%s: ", msg); fprintf(stdout, "%s\n", stamod_error[err_no].msg); } /* end else */ } /* end else */#ifdef TEST fprintf(stdout, "\n***** Normal end of sca_print_errmsg *********************************************\n\n");#endif return (0);} /* end sca_print_errmsg *//*-------------------------------------------------------------*//* E N D O F P R O C E D U R E sca_print_errmsg *//*-------------------------------------------------------------*/#ifdef TEST/*-------------------------------------------------------------*//* | GMD *//* +-----*//* PROC print_routines VERSION 2.0 *//* DATE Januar 1992 *//* BY Levona Eckstein *//* *//* DESCRIPTION *//* Trace functions *//* *//* *//* IN DESCRIPTION *//* *//* *//* RETURN DESCRIPTION *//*-------------------------------------------------------------*/voidprint_filecat(file_cat) FileCat file_cat;{ switch (file_cat) { case MF: fprintf(stdout, "file_cat : MF\n"); break; case DF: fprintf(stdout, "file_cat : DF\n"); break; case SF: fprintf(stdout, "file_cat : SF\n"); break; case EF: fprintf(stdout, "file_cat : EF\n"); break; default: fprintf(stdout, "file_cat : undefined\n"); break; };}voidprint_filetype(file_type, msg) FileType file_type; char *msg;{ if (msg == NULL) fprintf(stdout, "%s", text1); else { fprintf(stdout, "%s", msg); fprintf(stdout, "%s", text2); } switch (file_type) { case PEF: fprintf(stdout, "PEF\n"); break; case WEF: fprintf(stdout, "WEF\n"); break; case ACF: fprintf(stdout, "ACF\n"); break; case ISF: fprintf(stdout, "ISF\n"); break; default: fprintf(stdout, "undefined\n"); break; };}voidprint_datastruc(data_struc) DataStruc data_struc;{ switch (data_struc) { case LIN_FIX: fprintf(stdout, "data_struc : LIN_FIX\n"); break; case LIN_VAR: fprintf(stdout, "data_struc : LIN_VAR\n"); break; case CYCLIC: fprintf(stdout, "data_struc : CYCLIC\n"); break; case TRANSPARENT: fprintf(stdout, "data_struc : TRANSPARENT\n"); break; default: fprintf(stdout, "data_struc : undefined\n"); break; };}voidprint_filecontinfo(file_cat, file_control_info) FileCat file_cat; FileControlInfo *file_control_info;{ fprintf(stdout, "file_control_info :\n"); fprintf(stdout, " units : %d\n", file_control_info->units); fprintf(stdout, " racv : %x\n", file_control_info->racv); fprintf(stdout, " wacv : %x\n", file_control_info->wacv); fprintf(stdout, " dacv : %x\n", file_control_info->dacv); switch (file_control_info->readwrite) { case READ_WRITE: fprintf(stdout, " readwrite : READ_WRITE\n"); break; case WORM: fprintf(stdout, " readwrite : WORM\n"); break; case READ_ONLY: fprintf(stdout, " readwrite : READ_ONLY\n"); break; case WRITE_ONLY: fprintf(stdout, " readwrite : WRITE_ONLY\n"); break; default: fprintf(stdout, " readwrite : undefined\n"); break; }; fprintf(stdout, " set to 0x00 in case of MF,DF or SF \n"); fprintf(stdout, " execute : not used in this version \n"); fprintf(stdout, " mac : not used in this version \n"); fprintf(stdout, " enc : not used in this version \n"); if (file_control_info->not_erasable == TRUE) fprintf(stdout, " not_erasable : TRUE\n"); else fprintf(stdout, " not_erasable : FALSE\n"); fprintf(stdout, " recordsize : %d\n", file_control_info->recordsize); fprintf(stdout, " set to 0x00 in case of MF,DF,SF or \n"); fprintf(stdout, " EF and data_struc <> LIN_FIX and CYCLIC \n"); print_filesel(file_cat, &file_control_info->file_sel); fprintf(stdout, " addinfo : %s\n", file_control_info->addinfo.octets);}voidprint_filesel(file_cat, file_sel) FileCat file_cat; FileSel *file_sel;{ if (file_cat != EF) fprintf(stdout, "file_name : %s\n", file_sel->file_name); else print_fileid(&file_sel->file_id);}voidprint_fileid(file_id) FileId *file_id;{ fprintf(stdout, "file_id :\n"); switch (file_id->file_level) { case MF_LEVEL: fprintf(stdout, " file_level : MF_LEVEL\n"); break; case DF_LEVEL: fprintf(stdout, " file_level : DF_LEVEL\n"); break; case SF_LEVEL: fprintf(stdout, " file_level : SF_LEVEL\n"); break; default: fprintf(stdout, " file_level : undefined\n"); break; }; print_filetype(file_id->file_type, " "); fprintf(stdout, " name : %d\n", file_id->name);}voidprint_keyid(key_id) KeyId *key_id;{ if (!key_id) fprintf(stdout, "KeyId : NULL\n"); else { fprintf(stdout, "KeyId :\n"); switch (key_id->key_level) { case SC_MF: fprintf(stdout, " key_level : SC_MF\n"); break; case SC_DF: fprintf(stdout, " key_level : SC_DF\n"); break; case SC_SF: fprintf(stdout, " key_level : SC_SF\n"); break; case SCT: fprintf(stdout, " key_level : SCT\n"); break; default: fprintf(stdout, " key_level : undefined\n"); break; }; fprintf(stdout, " key_number : %d\n", key_id->key_number); }}voidprint_closecontext(file_close_context) FileCloseContext file_close_context;{ switch (file_close_context) { case CLOSE_CREATE: fprintf(stdout, "file_close_context : CLOSE_CREATE\n"); break; case CLOSE_SELECT: fprintf(stdout, "file_close_context : CLOSE_SELECT\n"); break; default: fprintf(stdout, "file_close_context : undefined\n"); break; };}voidprint_transmode(trans_mode) TransMode trans_mode;{ switch (trans_mode) { case TRANSP: fprintf(stdout, "trans_mode : TRANSP\n"); break; case SECURE: fprintf(stdout, "trans_mode : SECURE\n"); break; default: fprintf(stdout, "trans_mode : undefined\n"); break; };}voidprint_secmess(sec_mess)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -