linux高手请进

linux高手请进,第1张

#if defined(TRACE) || defined(NCURSES_TEST)

extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; / enable optimizations /

#ifdef _XOPEN_SOURCE_EXTENDED

extern NCURSES_EXPORT(const char ) _nc_viswbuf(const wchar_t );

#endif

extern NCURSES_EXPORT(const char ) _nc_visbuf (const char );

#define OPTIMIZE_MVCUR 0x01 / cursor movement optimization /

#define OPTIMIZE_HASHMAP 0x02 / diff hashing to detect scrolls /

#define OPTIMIZE_SCROLL 0x04 / scroll optimization /

#define OPTIMIZE_ALL 0xff / enable all optimizations (dflt) /

#define TRACE_MOVE 0x0008 / trace cursor moves and scrolls /

#define TRACE_CHARPUT 0x0010 / trace all character outputs /

#define TRACE_ORDINARY 0x001F / trace all update actions /

#define TRACE_CALLS 0x0020 / trace all curses calls /

#define TRACE_VIRTPUT 0x0040 / trace virtual character puts /

#define TRACE_IEVENT 0x0080 / trace low-level input processing /

#define TRACE_BITS 0x0100 / trace state of TTY control bits /

#define TRACE_ICALLS 0x0200 / trace internal/nested calls /

#define TRACE_CCALLS 0x0400 / trace per-character calls /

#define TRACE_DATABASE 0x0800 / trace read/write of terminfo/termcap data /

#define TRACE_ATTRS 0x1000 / trace attribute updates /

#define TRACE_SHIFT 13 / number of bits in the trace masks /

#define TRACE_MAXIMUM ((1 << TRACE_SHIFT) - 1) / maximum trace level /

#if defined(TRACE) || defined(NCURSES_TEST)

extern NCURSES_EXPORT_VAR(int) _nc_optimize_enable; / enable optimizations /

#ifdef _XOPEN_SOURCE_EXTENDED

extern NCURSES_EXPORT(const char ) _nc_viswbuf(const wchar_t );

#endif

extern NCURSES_EXPORT(const char ) _nc_visbuf (const char );

#define OPTIMIZE_MVCUR 0x01 / cursor movement optimization /

#define OPTIMIZE_HASHMAP 0x02 / diff hashing to detect scrolls /

#define OPTIMIZE_SCROLL 0x04 / scroll optimization /

#define OPTIMIZE_ALL 0xff / enable all optimizations (dflt) /

#endif

#ifdef __cplusplus

/ these names conflict with STL /

#undef box

#undef clear

#undef erase

#undef move

#undef refresh

}

#endif

#endif / __NCURSES_H /

看完了ncursesh头文件里面的函数应该知道这个文件里面的函数能满足大家很多要求了,比如写一个界面,画个图什么的,甚至于写一个编辑器!用curses库有个特点,就是要初始化一个窗口用函数initscr();后面要用函数endwin来说明窗口结束!

那么下面就看一看学习的笔记!

我们现在知道了:在程序中调用initscr()函数,会让屏幕初始化并进入CURSES模式。还有一些其它的函数可以根据我们自己的方案初始化 CURSES。不同的初始化函数可以让屏幕进入不同的显示模式。比如:终端模式(terminal mode)、彩色模式(color mode)、鼠标模式(mouse mode)等等……

通常情况下,用户输入的字符将被终端程序送入终端的缓冲区。但当用户输入换行符时,终端程序将会中断,同时输出当前的缓冲区内容并启用新行的输出缓冲。但是大多数程序需要当用户输入单个字符时,却希望这些字符能够立即显示在屏幕上。这两个函数就是用来禁用行缓冲(line buffering)。这两个函数所初始化的的模式同样可以用来给程序传送控制字符,比如:挂起(CTRL-Z)、中断或退出(CTRL-C)。区别在于,在raw()函数模式下,这些字符将传送给程序去处理而不作为终端程序处理的信号。在cbreak()模式下,这些控制字符将被认为是终端驱动程序中的控制字符,因而将这些字符传送给终端程序。我比较喜欢使用raw(),那样可以进行更多的控制 *** 作。

这两个函数控制用户输入的键盘回显。就是在运行程序的时候是否将输入的字符出现在屏幕上。比如你的程序在运行时你需要使用控制字符,但是你不想让控制字符出现在屏幕上,就可以使用这两个函数。也就是说当用户调用getch()函数向程序输入数据时,你不想让他输入的字符出现在屏幕上。noecho()函数就可以不让控制字符(比如CTRL-C)出现在屏幕上。大多数的交互式程序要进入控制模式的时候,一般都使用echo()、noecho()函数初始化、关闭键盘回显。这样给了程序员更大的灵活性。

首先uname -r看一下你当前的linux内核版本

1、linux的源码是在/usr/src这个目录下,此目录有你电脑上各个版本的linux内核源代码,用uname -r命令可以查看你当前使用的是哪套内核,你把你下载的内核源码也保存到这个目录之下。

2、配置内核 make menuconfig,根据你的需要来进行选择,设置完保存之后会在当前目录下生成config配置文件,以后的编译会根据这个来有选择的编译。

3、编译,依次执行make、make bzImage、make modules、make modules

4、安装,make install

5、创建系统启动映像,到 /boot 目录下,执行 mkinitramfs -o initrdimg-2636 2636

6、修改启动项,因为你在启动的时候会出现多个内核供你选择,此事要选择你刚编译的那个版本,如果你的电脑没有等待时间,就会进入默认的,默认的那个取决于 /boot/grub/grubcfg 文件的设置,找到if [ "${linux_gfx_mode}" != "text" ]这行,他的第一个就是你默认启动的那个内核,如果你刚编译的内核是在下面,就把代表这个内核的几行代码移到第一位如:

menuentry 'Ubuntu, with Linux 320-35-generic' --class ubuntu --class gnu-linux --class gnu --class os {

recordfail

gfxmode $linux_gfx_mode

insmod gzio

insmod part_msdos

insmod ext2

set root='(hd0,msdos1)'

search --no-floppy --fs-uuid --set=root 9961c170-2566-41ac-8155-18f231c1bea5

linux/boot/vmlinuz-320-35-generic root=UUID=9961c170-2566-41ac-8155-18f231c1bea5 ro quiet splash $vt_handoff

initrd/boot/initrdimg-320-35-generic

}

当然你也可以修改 set default="0"来决定用哪个,看看你的内核在第几位,default就填几,不过我用过这种方法,貌似不好用。

重启过后你编译的内核源码就成功地运行了,如果出现问题,比如鼠标不能用,usb不识别等问题就好好查查你的make menuconfig这一步,改好后就万事ok了。

最后再用uname -r看看你的linux内核版本。是不是你刚下的那个呢!有没有成就感?

打字不易,如满意,望采纳。

有两种方法,一是调用系统本身的clear

比如posix标准的clear,或者nt/ce标准的cls

另外就是在当前窗口打印全部的空行,然后切换鼠标至窗口顶端。

def clear():

import os

if osname == 'posix':

ossystem('clear')

elif osname == 'nt':

ossystem('cls')

else:

import curses

cursessetupterm()

lines = cursestigetnum('lines')

for x in xrange(lines):

print

print '\x1b[H\x1b2J'

以上就是关于linux高手请进全部的内容,包括:linux高手请进、tmp获取可渲染显示的字符数量、vc++6.0怎么调用curses库等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/web/9311329.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-27
下一篇2023-04-27

发表评论

登录后才能评论

评论列表(0条)

    保存