【发布时间】:2016-04-23 22:38:52
【问题描述】:
我正在用termcaps 编写一个C 程序,我需要通过执行如下方式返回一个值:
more `./program arg1 arg2 arg3 arg4`
如果我的屏幕太小,我的函数get_winsize有一个条件。
int *get_winsize()
{
struct winsize w;
int *ret;
ret = malloc(sizeof(int) * 2);
ioctl(STDOUT_FILENO, TIOCGWINSZ, &w);
ret[0] = w.ws_row;
ret[1] = w.ws_col;
if (ret[0] <= 5 || ret[1] <= 5)
{
printf("screen too small : size %d x %d\n", ret[0], ret[1]);
exit(0);
}
return (ret);
}
当我在没有反引号的情况下启动我的程序时,我没有问题。 但我有反引号:
size: No such file or directory
screen: No such file or directory
0: No such file or directory
x: No such file or directory
0: No such file or directory
知道为什么吗?也许反引号复制了一个没有屏幕的环境?!
【问题讨论】:
-
当您尝试打印 w.ws_row 和 w.ws_col 的值时会发生什么?如果它们不是您所期望的,那么问题可能在于 ioctl() 函数或在这种情况下您如何使用它
-
我编辑了,它逐行打印我的单词。