关于编写简单shell时的系统调用

时间:2014-05-15 17:31:23

标签: c shell unix

我有一个关于编写一个简单的Unix shell的任务。

我的老师说我需要检查每次系统调用的返回值"。以下是我理解"的含义,检查每个系统调用的返回值"。

例如,如果我的代码中有这一行:

int returnValue = kill (9999, SIGINT); 
/* 9999 is the pid of some process */

正如您所知,kill()为成功调用返回0,如果发生错误则返回-1。 因此,如果returnValue实际上是" -1"那么我应该打印出一些错误信息。

我是否理解&#34的含义;检查每个系统调用的返回值"是否正确?我真的不这么认为,因为赋值说明只是说检查系统调用的返回值但它没有说明错误消息的格式或者在系统中发生某些错误时应该怎么做呼叫。有人可以给我一些想法吗?

1 个答案:

答案 0 :(得分:2)

你有正确的想法。如果系统调用失败,您不希望它只是默默地进行。您需要做出的决定是错误是否足够严重以退出您自己的程序,或者您自己的程序是否可以有意义地继续(无论是通过重试系统调用;采取其他一些操作,这可能只是打印错误消息;或者无视它。)