我一直在寻找一种从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;
}
您是否考虑过使用getenv()?它使您可以获取包含端子列和行的系统环境变量。
或者,使用您的方法,如果您想查看内核显示的终端大小(最好是在调整终端大小时),则需要使用TIOCGWINSZ而不是TIOCGSIZE,如下所示:
struct winsize w;
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
和完整的代码:
#include <sys/ioctl.h>
#include <stdio.h>
#include <unistd.h>
int main (int argc, char **argv)
{
struct winsize w;
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
printf ("lines %d\n", w.ws_row);
printf ("columns %d\n", w.ws_col);
return 0; // make sure your main returns int
}
问题内容: 有没有一种方法可以使用javascript获取用户设备的宽度,而不是视口的宽度? 我可以说CSS媒体查询提供了这一点 和 如果我将智能手机定向为横向模式,这将很有用。例如,在iOS 上,即使在iPhone 4上,也将同时声明横向和纵向模式的声明 ,据我所知,Android并非如此,因此在这种情况下使用device-width成功地同时针对两个方向,而不定位桌面设备。 但是 ,如果我基于
本文向大家介绍Linux下使用Shell脚本获取终端宽度的解决方法,包括了Linux下使用Shell脚本获取终端宽度的解决方法的使用技巧和注意事项,需要的朋友参考一下 获取终端大小时候的学习 在写shell脚本时想输出一行占满整个终端屏幕宽度的 横杠 发现for循环会导致执行缓慢 解决方法: 使用yes 命令 sed '50q' 显示50行 tr -d '\n' 删除 \n 多次重复输入相同字符可
问题内容: 是否可以在node.js中获取图像的宽度和高度(在服务器端,而不是客户端)?我需要在我正在编写的node.js库中找到图像的宽度和高度。 问题答案: 是的,这是可能的,但是您需要安装GraphicsMagick或ImageMagick。 我都用过,我可以推荐GraphicsMagick,它要快得多。 一旦安装了程序及其模块,就可以执行以下操作来获取宽度和高度。
问题内容: 如何使用Golang获得tty大小?我正在尝试通过执行命令来执行此操作,但是我无法正确编写代码。 输出: 我认为这是因为Go产生了一个与当前tty无关的进程,该进程正在使用该进程。如何将命令与当前终端相关联以获取其大小? 问题答案: 如果您给子进程授予对父进程的访问权限,则它可以工作: 产量:
我是JavaFX的新手,我正在编写一个简单的登录应用程序,我想在我的web浏览器中启动它。 我如何获得web浏览器的宽度和高度?是否有一些对象用于此目的,或一个方法,我希望能够调整应用程序的大小,每当浏览器的大小改变。
我不知道如何获得堆栈窗格的宽度: 如果我指的是 http://docs.oracle.com/javafx/2.0/api/javafx/scene/layout/StackPane.html,堆栈窗格的尺寸应该适应它的内容: 堆栈窗格的父级将在布局期间在堆栈窗格的可调整大小范围内调整堆栈窗格的大小。默认情况下,堆栈窗格根据其内容计算此范围,如下表所述。 首选宽度左/右插入加上最大的子首选宽度。