Tôi đang tìm cách để lấy chiều rộng đầu cuối từ trong chương trình C của mình. Những gì tôi tiếp tục tìm ra là một cái gì đó dọc theo dòng:
#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);
}
Nhưng mỗi khi tôi cố gắng, tôi đều nhận được
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.)
Đây có phải là cách tốt nhất để làm điều này, hay có cách nào tốt hơn? Nếu không, làm thế nào tôi có thể làm cho nó hoạt động?
EDIT: mã cố định là
#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;
}