见者有份,一起来理解一下这个C程序
#include <string.h>
#include <stdio.h>
#include <sys/types.h>
#ifndef PORT
#define PORT 3000
#endif
u_short PORT_NUMBER = PORT;
int run_help(char *res, char *buffer, int *i_ptr);
#define BUFFER_SIZE 80
#define RES_SIZE 300
#define EXIT_CMD "exit"
void run() {
char buffer[BUFFER_SIZE];
int i = 0;
char res[RES_SIZE];
while (i < RES_SIZE) {
if (!run_help(res, buffer, &i)) break;
}
res[i+1] = 0;
printf(res);
printf("\n\n");
}
int run_help(char *res, char *buffer, int *i_ptr) {
fgets(buffer, BUFFER_SIZE, stdin);
// code to get rid of newlines and other stuff at end of string
int wordlen = strlen(buffer);
if (buffer[wordlen - 2] == 13) {
buffer[wordlen - 2] = 0;
wordlen -= 2;
}
else if (buffer[wordlen - 1] == 10) {
buffer[wordlen - 1] = 0;
wordlen -= 1;
}
if (strcmp(buffer, EXIT_CMD) == 0) return 0;
int j = 0;
while (j < wordlen) {
res[*i_ptr] = buffer[j];
(*i_ptr)++;
j++;
}
return 1;
}
都来看看呀