更多“系统调用、库函数的区别和练习”相关问题
  • 第1题:

    以下正确的说法是( )。

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

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

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

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


    参考答案B

  • 第2题:

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

    A 系统调用

    B 中断

    C 库函数

    D 原语


    参考答案A

  • 第3题:

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

    A.库函数

    B.可执行文件

    C.DLL

    D.API


    正确答案:D

  • 第4题:

    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头文件,否则无法运行。

  • 第5题:

    以下正确的说法是( )。

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

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

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

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


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

  • 第6题:

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


    正确答案:错误

  • 第7题:

    试说明访管指令、特权指令和系统调用之间的区别和联系。


    正确答案: 访管指令是一类机器指令,执行访管指令可以引起访管中断。访管指令不是特权指令,它可在算态下运行,也可在管态下运行。特权指令也是一类机器指令,特权指令只能在管态下执行,不能在算态下执行。系统调用不是机器指令,每个系统调用命令相当于一个函数,该函数实现操作系统提供的一种子功能。用户在编程时也可以使用这些系统调用命令。在系统调用命令中,总是包含一条访管指令,当系统调用执行到访管指令时,就引起访管中断,在进入中断处理程序后便由算态转入管态。在管态下,可以执行特权指令完成操作系统提供的功能。当中断处理程序结束后又从管态返回算态。当用户程序想要操作系统提供服务时,就可以在用户程序中使用系统调用命令,它是操作系统与用户的编程的接口。

  • 第8题:

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


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

  • 第9题:

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


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

  • 第10题:

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

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

  • 第11题:

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

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

  • 第12题:

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

    B


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

  • 第13题:

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

    A 进程

    B 系统调用

    C 库函数

    D 图形用户接口


    参考答案B

  • 第14题:

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

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


    正确答案:×

  • 第15题:

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


    正确答案:
     

  • 第16题:

    Unix的系统调用与DOS的中断调用的区别是:(28)。

    A.中断调用面向高级语言,而系统调用面向汇编语言

    B.系统调用面向高级语言,而中断调用面向汇编语言

    C.中断调用比系统调用功能强

    D.系统调用比中断调用功能强


    正确答案:B
    解析:系统调用面向高级语言,而中断调用面向汇编语言。

  • 第17题:

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


    正确答案:错误

  • 第18题:

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


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

  • 第19题:

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


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

  • 第20题:

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


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

  • 第21题:

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


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

  • 第22题:

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

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

  • 第23题:

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

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