示例#1
0
static int process_mdb(SCLPEvent *event, MDBO *mdbo)
{
    int rc;
    int len;
    uint8_t buffer[SIZE_BUFFER];

    len = be16_to_cpu(mdbo->length);
    len -= sizeof(mdbo->length) + sizeof(mdbo->type)
            + sizeof(mdbo->mto.line_type_flags)
            + sizeof(mdbo->mto.alarm_control)
            + sizeof(mdbo->mto._reserved);

    assert(len <= SIZE_BUFFER);

    /* convert EBCDIC SCLP contents to ASCII console message */
    ascii_put(buffer, mdbo->mto.message, len);
    rc = write_console_data(event, (uint8_t *)NEWLINE, 1);
    if (rc < 0) {
        return rc;
    }
    return write_console_data(event, buffer, len);
}
示例#2
0
int main(void)
{
	char input[LIM][SIZE];
	char *ptstr[LIM];
	char select;
	
	int ct = 0;

	printf("Input up to %d lines finished by EOF(^Z).\n",LIM);
	puts("To stop, press the Enter key at a line's start.");
	while(ct < LIM && gets(input[ct]) && input[ct][0] != '\0')
		{
			ptstr[ct] = input[ct];			//注意,不要把二维数组传到接受指针数组的函数,一个元素是指针,一个是字符,二维数组定义为char (str *)[SIZE]
			ct ++;
		}
	
	while((select = get_choice())!= 'q')
		{
			switch(select)
			{
				case 'a': origin_put(ptstr,ct);
									break;
				case 'b': ascii_put(ptstr,ct);
									break;
				case 'c': length_put(ptstr,ct);
									break;
				case 'd': first_word_length_put(ptstr,ct);
									break;
				default:	puts("Program error!");
									break;
			}
			
		}
	printf("Bye!\n");
		
	return 0;
}