Tôi đã tìm kiếm một cách để có được chiều rộng thiết bị đầu cuối từ bên trong chương trình C của tôi. một cái gì đó dọc theo dòng của những gì tôi giữ đến với là:Lấy chiều rộng đầu cuối trong 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);
}
Nhưng mọi tôi cố gắng mà tôi nhận được
[email protected]:~$ 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, hoặc là có một cách tốt hơn? Nếu không làm thế nào tôi có thể làm điều này để làm việc?
EDIT: cố định đang
#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;
}
vâng nhưng độ dài cụm không phải là biến môi trường, tĩnh của thuật ngữ đó theo thuật ngữ. – austin
Nó không cung cấp cho bạn kích thước thiết bị đầu cuối _current_, nếu ai đó định lại kích thước thiết bị đầu cuối trong quá trình thực thi chương trình. –
vâng, đã thêm rằng :) –