c - 在Linux、C程序中触发系统调用的调用?

标签 c linux operating-system

当下面的C程序在Linux中运行时,哪一行的执行必须触发系统调用的调用,为什么?什么是调用系统调用?

void main()
{
    double x=1;
    double y;
    double *z;

    z=(double *)malloc(sizeof(double)); // line 1
    scanf("%f", &y);                    // line 2
    *z=sqrt(y);                         // line 3
    y=y*2.0;                            // line 4
    printf("y=%f, *z=%f\n", y, *z);     // line 5
    y=y/x;                              // line 6 
    printf("y=%f",y);                   // line 7
}

最佳答案

调用 malloc 会调用系统调用,因为操作系统管理内存。

调用 scanfprintf 调用系统调用,因为操作系统管理 i/o 操作。

系统调用的调用是对操作系统服务的调用。

关于c - 在Linux、C程序中触发系统调用的调用?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34929971/

相关文章:

c - 创建系统调用后读取文件时出错

c# - 如何在 Linux 上获取 CPU 温度

mysql - MySQL Workbench 不支持的操作系统 - Windows 7

c - 带有 %g 和正确的 double 值的 printf 打印出令人讨厌的数字 - 可能是什么原因?

c - 关于C语言中的指针

c - 由于缓冲区溢出,程序未返回预期的 PC 注册表地址

linux - 配置 symfony 和 apache

linux - 在 df 输出命令上为每一行添加时间戳?

c - 给定两个线程并行运行时,变量的可能值是多少?

c - 堆栈和堆内存都引用 RAM(假设没有使用分页)吗?