小编Grz*_*cki的帖子

如何从系统调用号获取Linux系统调用名?

我需要将Linux系统调用号转换为人类可读的名称.在内核2.6.32中,我从/usr/include/asm/unistd_32.h中的__NR_*宏中提取了名称,这很糟糕但是很有效.现在我需要让它在内核3.2.0上工作,这个文件不再存在.

将Linux系统调用号映射到人类可读名称的最不便宜和最便携的方法是什么?例如1->退出,6->关闭等.

c linux

6
推荐指数
1
解决办法
1897
查看次数

为什么"decimal.Decimal('0')<1.0"在Python 2.6.5中产生False

在Python 2.6.5中,以下表达式产生False:

>>> import decimal
>>> decimal.Decimal('0') < 1.0
False
Run Code Online (Sandbox Code Playgroud)

是否有理由解释为什么Decimal与float的比较应该像这样?

python floating-point decimal

5
推荐指数
1
解决办法
392
查看次数

如何为 HTML 文本区域添加自动缩进?

我有 HTML 文本区域。我想修改它,使其实现自动缩进,即插入NEWLINE后,我想在新行的开头自动插入空格(空格的数量取决于上一行的缩进)。我发现,我可以通过注册一个监听“按键”事件的处理程序来做到这一点。现在我有一个选择:(a) 保留默认处理程序并在浏览器向 textarea.value 添加换行符后插入空格,或者 (b) 使用 PreventDefault() 并自行插入整个内容(即换行符和空格)。

在情况 (a) 中,如下面的代码所示,我的处理程序在浏览器添加换行符之前执行,因此空格(或用于说明的“--”)最终出现在该行的末尾,而不是在该行的开头新的一个。

在情况 (b) 中,如下面代码中的注释所示,文本被正确修改,但如果它导致光标移出文本区域视图,则内容不会滚动(很可能是因为内容滚动是默认处理的一部分) ),因此光标消失在文本区域边界后面,并且仅当我发送另一个击键(即不是换行符)时才会重新出现。

如何实现自动缩进效果而又不丢失默认滚动效果?

我知道这种效果可能可以通过延迟插入空格(例如使用 setTimeout())来近似,以便运行时有足够的时间来完成默认处理(即插入换行符和垂直滚动),但看起来像对我来说,这是一个巨大的混乱,并且引入了竞争条件,我担心它会在最意想不到的情况下(大量复制粘贴、由于其他操作而导致运行速度缓慢、高键盘重复率等)对我造成打击。理想情况下,我希望 (i) 在默认处理之后调用我的代码,或者 (ii) 能够阻止默认处理、运行我的代码并显式调用默认处理。如何实现?

谢谢!

格雷格

PS:我对集成复杂的文本区域替换不感兴趣,例如Editarea(我使用一个,它在浏览器中非常脆弱)。

在 FF3 上测试。

<html>
  <head>
    <script type="text/javascript">
      function onKeyPressHandler(e) {
      if (e.which == 13) // ASCII newline
          {
              var start = this.selectionStart;
              var end = this.selectionEnd;
              var v = this.value;
              this.value = v.slice(0, start) + '--' + v.slice(end); // (a)

              // (b): this.value = v.slice(0, start) + '\n--' + v.slice(end);
              // (b): e.preventDefault(); …
Run Code Online (Sandbox Code Playgroud)

javascript textarea indentation

5
推荐指数
1
解决办法
4965
查看次数

标签 统计

c ×1

decimal ×1

floating-point ×1

indentation ×1

javascript ×1

linux ×1

python ×1

textarea ×1