在Linux的情况下,尝试了解事件的确切顺序:
用户应用程序调用系统调用。
这将导致代码执行,从而导致触发软件异常(这是什么代码?如果我调用了glibc API,这是可以理解的,但是如果我的程序直接调用了系统调用,该怎么办)。常规系统调用是否包含一些触发此异常的代码?
一旦触发了异常-需要保留用户应用程序进程的上下文,并且我假定用户应用程序将处于挂起状态(假设其已等待的系统调用已被调用)。
然后,异常处理程序运行并根据所调用的系统调用选择合适的处理程序(该系统调用号如何从此异常触发代码传递给异常处理程序?)
一个异常处理程序运行(例如,一个读取调用,必须返回读取数据以使用触发其调用的进程-我认为这意味着异常触发代码还传递了一个指向缓冲区的指针)需要将读取的数据复制到其中)
此流程看起来还不错>除了用户应用程序之外,这些步骤中的每个步骤是否都有示例代码?