📄 strprint.c
字号:
/* * (c) Copyright 1992, 1993 by Panagiotis Tsirigotis * All rights reserved. The file named COPYRIGHT specifies the terms * and conditions for redistribution. */#include "config.h"#ifndef NO_SIO#include "sio.h"#endif#include "str.h"#include "strparse.h"#define INT_NULL ((int *)0)/* * The strx_* functions will never over-run the buffer * The str_* functions may over-run the buffer *//* * Group 1: the strx_* functions *//* * This is the general purpose conversion function. It is invoked * by all the other str[x]_* functions */void strx_printv( int *ccp, char *buf, int len, const char *format, va_list ap ){#ifndef NO_SIO __sio_od_t od ; int cc ; /* * First initialize the descriptor * Notice that if no length is given, we initialize buf_end to the * highest possible address. */ od.buf = buf ; /* NOT NEEDED */ od.buf_end = len ? &buf[ len ] : (char *) ~0 ; /* NEEDED */ od.buffer_size = 0 ; /* NOT NEEDED */ od.start = buf ; /* NOT NEEDED */ od.nextb = buf ; /* NEEDED */ od.buftype = 0 ; /* NOT NEEDED */ /* * Do the conversion */ cc = __sio_converter( &od, -1, format, ap ) ; if ( len == 0 || od.nextb < od.buf_end ) *(od.nextb) = '\0' ; if ( ccp ) *ccp = cc ;#endif /* ! NO_SIO */}void strx_print( int *ccp, char *buf, int len, const char *format, ... ){ va_list ap ; if (len <= 0) { if( ccp ) *ccp = 0; return; } va_start( ap, format ) ; strx_printv( ccp, buf, len, format, ap ) ; va_end( ap ) ;}char *strx_sprint( char *buf, int len, const char *format, ... ){ va_list ap ; if (len <= 0) { return buf; } va_start( ap, format ) ; strx_printv( INT_NULL, buf, len, format, ap ) ; va_end( ap ) ; return( buf ) ;}int strx_nprint( char *buf, int len, const char *format, ...){ int cc ; va_list ap ; if (len <= 0) { return 0; } va_start( ap, format ) ; strx_printv( &cc, buf, len, format, ap ) ; va_end( ap ) ; return( cc ) ;}int strx_nprintv( char *buf, int len, const char *format, va_list ap ){ int cc ; if (len <= 0) { return 0; } strx_printv( &cc, buf, len, format, ap ) ; return( cc ) ;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -