내 C 프로그램 내에서 터미널 너비를 얻는 방법을 찾고 있습니다. 내가 계속 생각하는 것은 다음과 같은 것입니다.
#include <sys/ioctl.h>
#include <stdio.h>
int main (void)
{
struct ttysize ts;
ioctl(0, TIOCGSIZE, &ts);
printf ("lines %d\n", ts.ts_lines);
printf ("columns %d\n", ts.ts_cols);
}
하지만 내가 시도 할 때마다
austin@:~$ gcc test.c -o test
test.c: In function ‘main’:
test.c:6: error: storage size of ‘ts’ isn’t known
test.c:7: error: ‘TIOCGSIZE’ undeclared (first use in this function)
test.c:7: error: (Each undeclared identifier is reported only once
test.c:7: error: for each function it appears in.)
이것이 가장 좋은 방법입니까, 아니면 더 나은 방법이 있습니까? 그렇지 않다면 어떻게 작동시킬 수 있습니까?
편집 : 고정 코드는
#include <sys/ioctl.h>
#include <stdio.h>
int main (void)
{
struct winsize w;
ioctl(0, TIOCGWINSZ, &w);
printf ("lines %d\n", w.ws_row);
printf ("columns %d\n", w.ws_col);
return 0;
}