小编Suk*_*uki的帖子

如何通过子进程取消alarm()信号?

对于作业,我正在创建一个时间感知的shell.如果shell运行超过一定的时间,它会分叉并执行命令并将其杀死.例如.

 input# /bin/ls
 a.out code.c
 input# /bin/cat
 Error - Expired After 10 Seconds.
 input#
Run Code Online (Sandbox Code Playgroud)

现在,我的问题是:如果在程序处理过程中出现错误,也就是说,当exevce返回-1时,有没有办法阻止警报启动?

由于儿童过程分开进行,经过数小时的实验和研究后,我还没有找到任何讨论甚至暗示这类任务的内容,我觉得这可能是不可能的.如果确实不可能,我怎么能防止发生以下事情......

 input# /bin/fgdsfgs
 Error executing program
 input# Error - Expired After 10 Seconds.
Run Code Online (Sandbox Code Playgroud)

对于上下文,这里是我正在使用的代码,我自己尝试删除这些代码.我在这里先向您的帮助表示感谢!

while(1){
    write(1, prompt, sizeof(prompt)); //Prompt user
    byteCount = read(0, cmd, 1024); //Retrieve command from user, and count bytes
    cmd[byteCount-1] = '\0';    //Prepare command for execution

    //Create Thread
    child = fork();

    if(child == -1){
        write(2, error_fork, sizeof(error_fork));
    }

    if(child == 0){ //Working in child
        if(-1 == execve(cmd,arg,env)){  //Execute program or error
            write(2, …
Run Code Online (Sandbox Code Playgroud)

c signals child-process alarm

3
推荐指数
1
解决办法
4992
查看次数

Python截断整数数组中的数字

我正在教自己Python并遇到一个奇怪的问题.我要做的是将一个列表传递给一个函数,并让函数返回一个列表,其中元素是它周围数字的总和,但我认为会产生一些奇怪的结果,所以我做了一个调试版本的仍然表现出行为的代码如下:

当我创建一个整数数组,并将其传递给一个函数,然后使用for循环打印列表的各个值时,每个int中第一个数字后面的数字将被截断.

例如,以下输入和输出:

Please enter a number: 101
Please enter a number: 202
Please enter a number: 303
Please enter a number: .
1
2
3
Run Code Online (Sandbox Code Playgroud)

无论输入是否为10,101或13453,都会发生这种情况 - 发生相同的行为.

我知道我可能错过了一些简单的东西,但是为了我,没有任何谷歌搜索让我解决了这个问题.下面是我用来执行此操作的代码.有趣的是:当在任何点打印for循环之外的整个列表时,它返回完整且正确的列表(即['101','202','303'])

谢谢!

temp = list()

def sum(list):
    print list
    for i in range(1, len(list)+1):
        print i
    return temp

L = list()
while True:
    input = raw_input("Please enter a number: ");
    if input.strip() == ".":
        break
    L.append(input);

print L

L2 = sum(L)
print L2
Run Code Online (Sandbox Code Playgroud)

python function list

0
推荐指数
1
解决办法
436
查看次数

标签 统计

alarm ×1

c ×1

child-process ×1

function ×1

list ×1

python ×1

signals ×1