当在Linux下运行以下C程序时,执行哪一行必须触发系统调用的调用,为什么?什么是系统调用的调用?
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
}
答案 0 :(得分:3)
对malloc
的调用会调用系统调用,因为操作系统会管理内存。
调用scanf
和printf
调用系统调用,因为操作系统管理i / o操作。
调用系统调用是对操作系统服务的调用。