在一次家庭作业中,我们被要求向Linux内核(Red Hat 2.4.18)添加一个系统调用。根据赋值,新系统调用的返回值应该为void。系统调用本身非常简单(只有一次赋值),不会出错。根据我所读到的知识,系统调用通常返回一个负值来表示失败,或者返回0来表示成功。我的问题是,这是一种常见的做法还是必须的做法?系统调用可以返回void吗?
浏览一下Linux内核,我发现wait_event_interruptible()的返回值几乎总是由if-block而不是while循环检查的: if (mutex_lock_interruptible(lock)) {} 为什么不在while循环中检查返回值,即使等待被信号处理程序中断,也要继续尝试?为什么驱动程序编写器要为系统调用返回-ERESTARTSYS以重新启动?这不是更贵吗? while (mutex_lock_interruptible(loc
在shell脚本中,使用wget并获取其返回值。wget www.google.com then else fi
运行许多shell脚本的Linux,包括上面的一个。假设在shell脚本中执行wget之后,操作系统会将控制权交给其他shell脚本,当再次开始执行上面的shell脚本时,那么$呢?返回值不是wget的返回值。在linux<