例:
#include<stdio.h>
intsushu(intx)
{inti
for(i=2i<xi++)
if(x%i==0)break
if(i==x)return1
elsereturn0
}
main()
{inti,n=0
for(i=2i<=1000i++)
if(sushu(i)==1)n++:
printf("n=%d",n)
}
扩展旦漏资料
使用vfork()新建子进程,然后调用exec函数族
#include<弯迟散unistd.h>
main()
{
char*argv[]={“ls”,”-al”,”/etc/passwd”埋氏,(char*)}
if(vfork()==0)
{
execv(“/bin/ls”,argv)
}else{
printf(“Thisistheparentprocess\n”)
}
}
用CALL调用子程序和用中断调用子程序区别为:发生时间不同、关系不同、系统不同。乱肢
一、发生时间不同
1、用CALL调用子程序:在主程序的调用指令(CALL)执行时发生主程序调用子程序过程,调用指令所在位置是已知的和固定的。
2、用中断调用子程序:中断过程发生的时间一般是随机的,CPU在执行某一主程序时受到中断源提出的中断申请,就发生中断过程。
二、关系不同
1、用CALL调用子程序:子程序完全为主程序服务,两者属于主从关系。主程物激序需要子程序时就去调用子程序,并把调用结果带回主程序继续执行。
2、用中断调用子程序:中断服务程序与子程序二者一般是无关的,两者是平行关系。
三、系统不同
1、用CALL调用子程序:主程序调用子程序的过程完全属于软件处理过程,不需要专门的硬件电路。
2、用中断调用子程序:中断处理系统是一个软、硬件结合的系统,需要专门的硬件电路才能完成中断处理的过程。哗蚂世
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)