小编Sub*_*n P的帖子

用于检查范围是词汇还是动态的程序

我发现检查作用域是词法还是动态的程序是下面给出的程序(来源:http://inst.eecs.berkeley.edu/~cs61a/su10/resources/sp11-Jordy/scope/)

(define test 
  (let ((scope 'lexical)) 
    (lambda () scope)))

(let ((scope 'dynamic)) 
  (test))
Run Code Online (Sandbox Code Playgroud)

但这怎么可行呢?这应该始终打印'词汇(无论范围是词汇还是动态)对吗?因为在第一个'let'的本体范围内,范围总是被定义为'词汇..如果我错了请纠正我

scheme scope racket

5
推荐指数
2
解决办法
240
查看次数

为什么call_usermodehelper在大多数情况下会失败?

从内核模块,我试图使用call_usermodehelper函数来执行可执行文件sha1,该文件将文件作为参数并将文件的SHA1哈希值写入另一个文件(命名为output)。可执行文件完美运行。

int result=-1;
name = "/home/file"
char *hargv[] = {"/home/sha1", name,NULL };
char *henvp[] = {"HOME=/", "PATH=/sbin:/usr/sbin:/bin:/usr/bin", NULL };
result = call_usermodehelper("/home/sha1", hargv, henvp, 1);
Run Code Online (Sandbox Code Playgroud)

但是大多数情况下,call_usermodehelper返回-14并无法执行可执行文件。可能是什么原因?

有时它可以工作,但是随后创建的输出文件被锁定(与直接运行sha1时不同),我必须先运行chown才能正确使用它。如何预防?

无论如何,没有call_usermodehelper可以执行此操作吗?

linux kernel-module linux-kernel user-mode-linux kernel-mode

2
推荐指数
1
解决办法
857
查看次数