48 lines
702 B
C
48 lines
702 B
C
#include <limits.h>
|
|
#include <stdio.h>
|
|
#include <stdlib.h>
|
|
#include <unistd.h>
|
|
#include <signal.h>
|
|
#include <ncurses.h>
|
|
#include <sys/ioctl.h>
|
|
|
|
void sig_handler(int sig) {
|
|
(void)sig;
|
|
|
|
endwin();
|
|
exit(0);
|
|
}
|
|
|
|
int main(void) {
|
|
signal(SIGINT, sig_handler);
|
|
signal(SIGTERM, sig_handler);
|
|
|
|
struct winsize ws;
|
|
if (ioctl(STDOUT_FILENO, TIOCGWINSZ, &ws) < 0)
|
|
return 1;
|
|
|
|
initscr();
|
|
noecho();
|
|
curs_set(0);
|
|
timeout(0);
|
|
|
|
size_t middle = ws.ws_row / 2;
|
|
|
|
size_t args = 0;
|
|
while (1) {
|
|
if (args > ws.ws_col) {
|
|
refresh();
|
|
clear();
|
|
args = 0;
|
|
}
|
|
|
|
int val1;
|
|
read(STDIN_FILENO, &val1, sizeof(val1));
|
|
|
|
int k = val1 * (middle - 5) / INT_MAX;
|
|
mvprintw(middle + k, args, "@");
|
|
|
|
args++;
|
|
}
|
|
}
|