📄 output.c
字号:
/* * Some output conversion routines for libproc * Copyright (C) 1996, Charles Blake. See ../COPYING.LIB for * distribution conditions.*/#include <stdio.h>#include <ctype.h>#include <string.h>/* output a string, converting unprintables to octal as we go, and stopping after processing max chars of output (accounting for expansion due to octal rep).*/unsigned print_str(FILE* file, char *s, unsigned max) { int i; for (i=0; s[i] && i < max; i++) if (isprint(s[i]) || s[i] == ' ') fputc(s[i], file); else { if (max - i > 3) { fprintf(file, "\\%03o", s[i]); i += 3; /* 4 printed, but i counts one */ } else return max - i; } return max - i;}/* output an argv style NULL-terminated string list, converting unprintables to octal as we go, separating items of the list by 'sep' and stopping after processing max chars of output (accounting for expansion due to octal rep).*/unsigned print_strlist(FILE* file, char **strs, char* sep, unsigned max) { int i, n, seplen = strlen(sep); for (n=0; *strs && n < max; strs++) { for (i=0; strs[0][i] && n+i < max; i++) if (isprint(strs[0][i]) || strs[0][i] == ' ') fputc(strs[0][i], file); else { if (max-(n+i) > 3) { fprintf(file, "\\%03o", strs[0][i]); n += 3; /* 4 printed, but i counts one */ } else return max - n; } n += i; if (n + seplen < max) { fputs(sep, file); n += seplen; } else return max - n; } return max - n;}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -