首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >确定是否在illumos/solaris中的控制台上运行

确定是否在illumos/solaris中的控制台上运行
EN

Stack Overflow用户
提问于 2013-05-03 01:42:41
回答 2查看 139关注 0票数 0

Debian的X包装器中使用了a function。此函数确定X是否在控制台(虚拟终端)上运行,它在linux和freebsd上工作。

在illumos/solaris上有什么方法可以做到这一点?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-05-03 10:43:01

Solaris可用于确定VT_GETSTATE 11上的活动VT。有关详细信息,请参阅vt(7I) man page

票数 2
EN

Stack Overflow用户

发布于 2013-06-20 15:11:06

代码语言:javascript
复制
diff --git a/debian/local/xserver-wrapper.c b/debian/local/xserver-wrapper.c
index d4a6ab8..31e5343 100644
--- a/debian/local/xserver-wrapper.c
+++ b/debian/local/xserver-wrapper.c
@@ -116,6 +116,9 @@
 #define TTY_MAJOR_DEV 4
 #elif defined(__FreeBSD__) || defined(__FreeBSD_kernel__)
 #include <sys/consio.h>
+#elif defined(__sun__)
+#include <sys/kd.h>
+#include <sys/vt.h>
 #endif

 #define X_WRAPPER_CONFIG_FILE "/etc/X11/Xwrapper.config" 
@@ -171,6 +174,10 @@ onConsole()

   if (ioctl(0, VT_GETINDEX, &idx) != -1)
     return TRUE;
+#elif defined(__sun__)
+  int mode;
+  if (ioctl(0, KDGETMODE, &mode) != -1) /* mode = 0 (KD_TEXT) or 1 (KD_GRAPHICS) */
+    return TRUE;
 #else
 #warning This program needs porting to your kernel.
   (void) fprintf(stderr, "X: unable to determine if running on a console\n");
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/16344411

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档