#include #include #include #include #include int main(int argc, char *argv[]) { //char *string = NULL; //size_t sz = 0; int fd = open("log.log", O_WRONLY | O_CREAT | O_APPEND, 0660); if (fd < 0) { return 1; } char msg[100] = "\nnew log =======\n"; write(fd, &msg, sizeof(msg)); char sstring[4096] = {}; ssize_t pos = 0; int c = getchar(); while (c != EOF) { switch (c) { case '\n': sstring[pos] = '\0'; printf("\r%s", sstring); fflush(stdout); pos = 0; break; default: sstring[pos++] = c; break; } c = getchar(); } putchar('\n'); //while (getline(&string, &sz, stdin) > 0) { // if (!sz) { // continue; // } // char *reader = string; // putchar(*reader); // write(fd, reader, 1); // fflush(stdout); // char *writer = string; // while ((reader - string) < sz) { // if (*reader == '\n') { // *reader = '\0'; // break; // } // write(fd, "<", 1); // write(fd, reader, 1); // write(fd, ">", 1); // *(reader++) = *(writer++); // } // printf("\r%s", string); // write(fd, "!", 1); // free(string); // string = NULL; //} close(fd); //free(string); return 0; }