我正在学习系统调用,并开始理解它们。我知道不应该直接调用它们(因为这会使您的代码不够可移植),而应该调用API。但是,有没有办法确定某个函数是否使用了系统调用?我读到并非所有函数都需要系统调用(一些库函数)。例如,fopen最终将使用系统调用。我的问题如下:
像cin(c++)这样的函数需要系统调用吗?
有办法确定一个函数是否使用了系统调用吗?
我正在学习系统调用,并开始理解它们。我知道不应该直接调用它们(因为这会使您的代码不够可移植),而应该调用API。但是,有没有办法确定某个函数是否使用了系统调用?我读到并非所有函数都需要系统调用(一些库函数)。例如,fopen最终将使用系统调用。我的问题如下:
像cin(c++)这样的函数需要系统调用吗?
有办法确定一个函数是否使用了系统调用吗?
cin >> ...
读取输入时,可能会或可能不会调用系统调用。这取决于缓冲区中是否已经有足够的数据。如果缓冲区中没有足够的数据,则必须进行系统调用以从底层文件或设备检索数据。foo
可能调用某个将单独编译的extern
函数bar
(在另一个翻译单元中),该函数调用系统调用;直到链接时间,才能知道foo
可能间接调用系统调用的事实。