我正在尝试在默认的python IDE中收集一些unicode raw_input,据我所知,它应该像下面这样简单:
>>> c = raw_input()
???
>>> print c
???
Run Code Online (Sandbox Code Playgroud)
但是,当我尝试输入unicode字符时,计算机会发出一些声音,最后会出现一个空字符串.(为此,我在时间点击IME切换器并选择适当的输入方法[在本例中为日语输入].在python IDE之外,输入工作正常,我可以输入字符,系统将它们识别为已输入.在IDE中,我会输入一些平假名,并且下拉汉字选择窗口像往常一样出现,但是当我选择适当的表示并按下回车时,那些哔哔声会响起来,我什么都没有.我觉得我错过了一个涉及某处的环境.
版本是:
Python 2.6.1 (r261:67515, Jun 24 2010, 21:47:49)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Run Code Online (Sandbox Code Playgroud)
和
Python 2.5.4 (r254:67916, Jun 24 2010, 21:47:25)
[GCC 4.2.1 (Apple Inc. build 5646)] on darwin
Run Code Online (Sandbox Code Playgroud)
两者都不起作用.还有这个:
>>> import sys
>>> sys.getdefaultencoding()
'ascii'
>>> sys.stdin.encoding
'UTF-8'
>>> sys.stdout.encoding
'UTF-8'
>>> sys.getfilesystemencoding()
'utf-8'
Run Code Online (Sandbox Code Playgroud)
但从我所读到的,违约编码是一个神秘的野兽.改变它实际上并没有解决任何问题.那是,
>>> import sys
>>> sys.setdefaultencoding('utf-8')
Traceback (most recent call last):
File "<stdin>", line 1, in <module>
AttributeError: …
Run Code Online (Sandbox Code Playgroud) 我试图了解内核,并且一段时间以来一直尝试打印构成内核环境的一些基本数据结构.我的问题是,给定一个内存地址,我希望能够打印该地址的内容.
例如,我有一个确定IDT位置的函数.它(void *)
按顺序返回0xffff81b8c0000fff
.但是,每当我尝试printk
在该地址处时,结果就是内核恐慌.我知道有一些保护可以阻止用户从用户空间访问内核内存,但我试图在start_kernel中执行此操作,我认为这些内容可读.
代码是:
idt_ptr = sidt(); // returns (void *)
printk(KERN_INFO "680: IDT TABLE, FIRST ENTRY\n");
//entry is 64 bits
printk(KERN_INFO "680: %llx\n", *(unsigned long long *)idt_ptr);
Run Code Online (Sandbox Code Playgroud)
这是尝试此尝试后发生的内核恐慌的尾端:
看来我需要一个信号量来进行读访问,但这不是一个任意的地址吗?