参考答案和解析
正确答案: 从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。
从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。
系统调用由两部分组成:
(1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。
(2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。
解析: 暂无解析
更多“问答题简述系统调用、库函数的区别。”相关问题
  • 第1题:

    ● 操作系统提供给程序员的接口是()。()A. 进程 B. 系统调用 C. 库函数 D. B和C


    正确答案:B
    操作系统提供给程序员的接口是系统调用,而库函数是通过系统调用所形成的特定功能的函数。

  • 第2题:

    用户在程序中试图读存放在硬盘中某文件的第10逻辑块,使用操作系统提供的接口是( )。

    A 进程

    B 系统调用

    C 库函数

    D 图形用户接口


    参考答案B

  • 第3题:

    C语言中,用户若需要调用标准库函数,调用前必须重新定义。

    此题为判断题(对,错)。


    正确答案:×

  • 第4题:

    不调用库函数,实现 strcpy函数。


    正确答案:
     

  • 第5题:

    以下正确的说法是( )。

    A.用户若需调用标准库函数,调用前必须重新定义

    B.用户可以重新定义标准库函数,若重新定义,该函数将失去原有含义

    C.系统根本不允许用户重新定义标准库函数

    D.用户若需调用标准库函数,调用前不必使用预编译命令将该函数所在文件包括到用户源文件中,系统会自动调用


    正确答案:B
    解析:用户调用标准库函数前不必重新定义,而只需使用预编译命令将该函数所在文件包括到用户源文件中即可。而且,系统允许用户重新定义标准库函数,但此时该函数将失去原有含义。因此,正确答案为选项B)。

  • 第6题:

    被main()函数调用的只能是库函数


    正确答案:错误

  • 第7题:

    什么是系统调用?系统调用与一般程序有什么区别?


    正确答案: 所谓系统调用,指运行在用户态的应用程序请求操作系统为之服务的一种手段。它由运行在核心态的操作系统的一段程序来完成特定功能,属于一种特殊的过程调用。
    区别:
    (1)运行状态不同。一般的过程调用其调用和被调用过程都是用户程序,都运行在同一种系统状态(用户态)下;而系统调用的调用过程一般是用户程序,它运行在用户态,被调用过程是系统过程(操作系统程序),运行在系统态。
    (2)进入方式不同。一般用户程序调用可以直接通过过程调用语句将控制转移到被调用过程;而执行系统调用时,由于调用和被调用过程处于不同系统状态,必须通过访管中断进入。

  • 第8题:

    问答题
    简述系统功能调用和BIOS中断的作用和一般调用方法。

    正确答案: (1)系统功能调用
    作用:设备管理;文件管理和目录操作;其它管理(如内存、时间、日期等管理)
    一般调用方法:
    ①功能号→AH
    ②入口参数→制定寄存器
    ③INT 21H
    (2)BIOS中断调用
    作用:驱动系统中所配置的常用外设(即驱动程序),如显示器、键盘、打印机、磁盘驱动器、通信接口等;开机自检,引导装入;提供时间、内存容量及设备配置情况等参数。
    一般调用方法:
    ①功能号→AH
    ②入口参数→制定寄存器
    ③INT N
    解析: 暂无解析

  • 第9题:

    问答题
    回答stat、fstat、latat三个系统调用的区别。

    正确答案: stat根据路径获得文件元数据信息
    fstat根据文件描述符获得文件元数据信息
    前两者如果遇到符号链接文件则会一直引用至非符号链接文件
    lstat获得符号链接文件本身的文件元数据信息
    解析: 暂无解析

  • 第10题:

    问答题
    什么是系统调用?系统调用与一般程序有什么区别?

    正确答案: 所谓系统调用,指运行在用户态的应用程序请求操作系统为之服务的一种手段。它由运行在核心态的操作系统的一段程序来完成特定功能,属于一种特殊的过程调用。
    区别:
    (1)运行状态不同。一般的过程调用其调用和被调用过程都是用户程序,都运行在同一种系统状态(用户态)下;而系统调用的调用过程一般是用户程序,它运行在用户态,被调用过程是系统过程(操作系统程序),运行在系统态。
    (2)进入方式不同。一般用户程序调用可以直接通过过程调用语句将控制转移到被调用过程;而执行系统调用时,由于调用和被调用过程处于不同系统状态,必须通过访管中断进入。
    解析: 暂无解析

  • 第11题:

    问答题
    系统调用和一般用户函数调用的区别?

    正确答案: 在操作系统中,系统调用程序在系统态执行;一般用户函数调用程序由用户准备,在用户态执行。
    解析: 暂无解析

  • 第12题:

    问答题
    试说明特权指令和系统调用之间的区别与联系。

    正确答案: 特权指令是一类只能在核心态下执行的机器指令。而系统调用不是机器指令,它往往以函数调用的形式出现,实现操作系统提供的子功能,它是操作系统与用户的编程接口。在用户程序中可以使用系统调用来获得操作系统服务,在系统调用代码中可以使用特权指令
    解析: 暂无解析

  • 第13题:

    以下正确的说法是( )。

    A、用户调用标准库函数前,必须重新定义

    B、用户可以重新定义标准库函数,若如此,该函数将失去原有含义

    C、系统不允许用户重新定义标准库函数

    D、用户调用标准库函数前,不必使用预编译命令将该函数所在文件包括到用户源文件中


    参考答案B

  • 第14题:

    下列选项中,操作系统提供给应用程序的接口是()。

    A 系统调用

    B 中断

    C 库函数

    D 原语


    参考答案A

  • 第15题:

    在Windows系统下,系统调用多数都是封装在高级()中来调用的。

    A.库函数

    B.可执行文件

    C.DLL

    D.API


    正确答案:D

  • 第16题:

    strlen()库函数与stdio.h头文件问题?

    strlen()是一个计算字符串长度的这么一个库函数,这个库函数是定义在string.h这个头文件里的,要想使用这个库函数就必须调用预处理命令将string.h添加到当前的代码中,可是为什么在调用string.h这个头文件的基础上还要调用stdio.h这个头文件呢?stdio.h只是一个输入输出函数的这么一个头文件,跟strlen()库函数有什么关系,,,求解。


    stdio.h是标准输入输出,C语言本身不包括输入输出函数,如:printf,scanf等等,这些C语言本身并没有包含这些函数,所以就要加stdio.h库函数,里面就有了这些输入输出函数的声明;而strlen函数在包含在string.h中的,所以两者没有任何关系,而你所提的问题,是由于你的程序代码中使用了一些C语言没有提供的函数,但是这些函数又恰好是stdio.h中所包含的,故一定得包含stdio.h头文件,否则无法运行

    1、stdio.h是标准输入输出,C语言本身不包括输入输出函数
    如:printf,scanf等,这些C语言本身并没有包含这些函数,所以就要加stdio.h库函数,里面就有了这些输入输出函数的声明

    2、strlen函数在包含在string.h中的,所以两者没有任何关系,而你所提的问题,是由于你的程序代码中使用了一些C语言没有提供的函数,但是这些函数又恰好是stdio.h中所包含的,所以一定得包含stdio.h头文件,否则无法运行


    stdio.h是标准输入输出,C语言本身不包括输入输出函数,如:printf,scanf等等,这些C语言本身并没有包含这些函数,所以就要加stdio.h库函数,里面就有了这些输入输出函数的声明;
    而strlen函数在包含在string.h中的,所以两者没有任何关系,而你所提的问题,是由于你的程序代码中使用了一些C语言没有提供的函数,但是这些函数又恰好是stdio.h中所包含的,故一定得包含stdio.h头文件,否则无法运行。

  • 第17题:

    系统调用是操作系统和用户进程的接口,库函数也是操作系统和用户的接口。


    正确答案:错误

  • 第18题:

    试叙述系统调用与过程调用的主要区别。


    正确答案: ⑴调用形式不同
    ⑵被调用代码的位置不同
    ⑶提供方式不同
    ⑷调用的实现不同。

  • 第19题:

    简述系统调用、库函数的区别。


    正确答案: 从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。
    从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。
    系统调用由两部分组成:
    (1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。
    (2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。

  • 第20题:

    问答题
    简述系统功能调用的步骤。

    正确答案: (1)传送入口参数到指定寄存器中。
    (2)功能号送入AH寄存器中。
    (3)INT 21H。
    解析: 暂无解析

  • 第21题:

    问答题
    简述系统调用、库函数的区别。

    正确答案: 从用户角度观察,系统调用和库函数都以C函数形式出现,提供给用户一种功能实现的接口,需要用户输入指定的参数,调用结束得到指定的返回值。
    从实现者角度观察,库函数是在系统调用上层的函数,库函数一般指程序员可以使用的通用函数。
    系统调用由两部分组成:
    (1)核心函数:是实现系统调用功能的代码,作为操作系统的核心驻留在内存中,是一种共享代码。运行在核心态。
    (2)接口函数:是提供给应用程序的API,以库函数的形式存在于Linux的lib.a中,该库中存放了所有系统调用的接口函数的目标代码,用汇编语言书写。其主要功能是把系统调用号,入口参数地址传给相应的核心函数,并使用户态下运行的应用程序陷入核心态。
    解析: 暂无解析

  • 第22题:

    问答题
    sizeof是库函数吗?sizeof 和 strlen 的区别?

    正确答案: sizeof 是一个操作符,strlen 是库函数。 
    sizeof的参数可以是数据的类型,也可以是变量,而 strlen 只能以结尾为‘/ 0‘的字符串作参数。 
    编译器在编译时就计算出了 sizeof 的结果。而 strlen 函数必须在运行时才能计算出来。并且 sizeof计算的是数据类型占内存的大小,而 strlen 计算的是字符串实际的长度。 
    数组做 sizeof 的参数不退化,传递给 strlen 就退化为指针了。  
    注意:有些是操作符看起来像是函数,而有些函数名看起来又像操作符,这类容易混淆的名称一定要加以区分,否则遇到数组名这类特殊数据类型作参数时就很容易出错。最容易混淆为函数的操作符就是 sizeof。
    解析: 暂无解析

  • 第23题:

    判断题
    系统调用是操作系统和用户进程的接口,库函数也是操作系统和用户的接口。
    A

    B


    正确答案:
    解析: 暂无解析

  • 第24题:

    问答题
    请简述隐式调用系统的优缺点。

    正确答案: 优点:(1)为软件重用提供了强大的支持。(2)为改进系统带来了方便。
    缺点:(1)构件放弃了对系统计算的控制。(2)数据交换的问题。(3)既然过程的语义必须依赖于被触发事件的上下文约束,关于正确性的推理就存在问题。
    解析: 暂无解析