首页 > 试题广场 >

下面的函数哪个是系统调用而不是库函数()?

[单选题]
下面的函数哪个是系统调用而不是库函数()?
  • printf
  • scanf
  • fgetc
  • read
  • print_s
  • scan_s
推荐
答:D
read()不是库函数,是系统调用,作用是读文件(Linux中的一切设备都看做文件)
函数原型:
Ssize_t read(int filedes, void *buf, size_t nbytes);
                    Returns:number of bytes read, 0 if end of file, -1 on error

如果read系统调用成功,则将返回读取到的字节数;如果遇到了文件尾EOF,则返回0。
编辑于 2015-01-30 16:02:44 回复(3)
系统调用实际上就是指最底层的一个调用,在linux程序设计里面就是底层调用的意思。面向的是硬件。而库函数调用则面向的是应用开发的,相当于应用程序的api。
发表于 2016-02-18 20:46:13 回复(0)
很容易判断,那些什么print和scan都是C库函数,只有read,这是一个linux下的系统函数,C库函数相应的函数是fread。
发表于 2015-08-22 20:42:32 回复(0)

发表于 2018-08-11 21:10:55 回复(0)
print_s和scan_s是库函数吗?
发表于 2015-08-19 20:22:52 回复(1)
系统调用是通向操作系统的接口,通过系统调用,可以使得用户运行的进程和硬件设备进行交互,是操作系统留给应用程序的一个接口。
open:打开文件或设备
read:从打开的文件或设备中读取数据
write: 向打开的文件或设备中写入数据 
close: 关闭文件或设备 
ioctl: 把控制信息传递给设备驱动文件




发表于 2019-04-12 09:50:24 回复(0)
系统调用是内核向上提供的接口,是操作系统的一个入口点,在内核地址空间执行程序。而库函数只不过是把你平常写的函数封装了一下,地位上是一样的,都是在用户地址空间执行程序。
发表于 2016-05-04 20:33:25 回复(0)
D
发表于 2015-04-01 22:00:50 回复(0)
答案:D
A stdio.h
B stdio.h
c stdio.h
...
发表于 2015-03-31 20:13:24 回复(0)