C语言函数的接口子程序
例:
#include
intsushu(intx)
{inti;
for(i=2;i<x;i++)
if(x%i==0)break;
if(i==x)return1;
elsereturn0;
}
main()
{inti,n=0;
for(i=2;i<=1000;i++)
if(sushu(i)==1)n++:
printf("n=%d",n);
}
扩展资料
使用vfork()新建子进程,然后调用exec函数族
#include
main()
{
char*argv[]={“ls”,”-al”,”/etc/passwd”,(char*)};
if(vfork()==0)
{
execv(“/bin/ls”,argv);
}else{
printf(“Thisistheparentprocess
”);
}
}
程序的模块是指:例如整个项目程序实现一个打飞机的功能,这个功能分很多小功能(你的飞机开炮,移动; 敌人的飞机开炮,移动),就可以说敌人飞机实现代码所以部分叫成程序的一个模块
子程序:就是指代码函数实现具体功能的函数,其中一个小函数实现飞机开炮功能就可以叫子程序,而主程序就是调用所有子程序的集合
接口就是指:比如你这个程序中,有写一个子程序,而其他人也想做类似打飞机的游戏,想要你这个子程序代码,他要写吗?不用,你就写一个接口函数,开放给他用,然后他就通过调用你这个开放的接口,他也能实现你这个打飞机其中一个小功能
所在函数库为:dos.h、bios.h
unsigned sleep(unsigned seconds)暂停seconds微秒(百分之一秒)
int unlink(char *filename)删除文件filename
unsigned FP_OFF(void far *farptr)本函数用来取远指针farptr的偏移量
unsigned FP_SEG(void far *farptr)本函数用来没置远指针farptr的段值
void far *MK_FP(unsigned seg,unsigned off)根据段seg和偏移量off构造一个far指针
unsigned getpsp()取程序段前缀的段地址,并返回这个地址
char *parsfnm(char *cmdline,struct fcb *fcbptr,int option)
函数分析一个字符串,通常,对一个文件名来说,是由cmdline所指的一个命令行.
文件名是放入一个FCB中作为一个驱动器,文件名和扩展名.FCB是由fcbptr所指
定的.option参数是DOS分析系统调用时,AL文本的值.
int absread(int drive,int nsects,int sectno,void *buffer)本函数功能为读特定的
磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要读的扇区数,sectno为开始的逻
辑扇区号,buffer为保存所读数据的保存空间
int abswrite(int drive,int nsects,int sectno,void *buffer)本函数功能为写特定的
磁盘扇区,drive为驱动器号(0=A,1=B等),nsects为要写的扇区数,sectno为开始的逻
辑扇区号,buffer为保存所写数据的所在空间
void getdfree(int drive,struct dfree *dfreep)本函数用来取磁盘的自由空间,
drive为磁盘号(0=当前,1=A等).函数将磁盘特性的由dfreep指向的dfree结构中.
dfree结构如下:
┌───────────────────┐
│struct dfree │
│{ │
│ unsigned df_avail; /*有用簇个数*/ │
│ unsigned df_total; /*总共簇个数*/ │
│ unsigned df_bsec; /*每个扇区字节数*/│
│ unsigned df_sclus; /*每个簇扇区数*/ │
│} │
└───────────────────┘
char far *getdta() 取磁盘转换地址DTA
void setdta(char far *dta)设置磁盘转换地址DTA
void getfat(int drive,fatinfo *fatblkp)
本函数返回指定驱动器drive(0=当前,1=A,2=B等)的文件分配表信息
并存入结构fatblkp中,结构如下:
┌──────────────────┐
│struct fatinfo │
│{ │
│ char fi_sclus; /*每个簇扇区数*/ │
│ char fi_fatid; /*文件分配表字节数*/│
│ int fi_nclus; /*簇的数目*/ │
│ int fi_bysec; /*每个扇区字节数*/ │
│} │
└──────────────────┘
void getfatd(struct fatinfo *fatblkp) 本函数返回当前驱动器的文件分配表信息,
并存入结构fatblkp中,结构如下:
┌──────────────────┐
│struct fatinfo │
│{ │
│ char fi_sclus; /*每个簇扇区数*/ │
│ char fi_fatid; /*文件分配表字节数*/│
│ int fi_nclus; /*簇的数目*/ │
│ int fi_bysec; /*每个扇区字节数*/ │
│} │
└──────────────────┘
int bdos(int dosfun,unsigned dosdx,unsigned dosal)本函数对MSDOS系统进行调用,
dosdx为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号
int bdosptr(int dosfun,void *argument,unsiigned dosal)本函数对MSDOS系统进行调用,
argument为寄存器dx的值,dosal为寄存器al的值,dosfun为功能号
int int86(int intr_num,union REGS *inregs,union REGS *outregs)
执行intr_num号中断,用户定义的寄存器值存于结构inregs中,
执行完后将返回的寄存器值存于结构outregs中.
int int86x(int intr_num,union REGS *inregs,union REGS *outregs,
struct SREGS *segregs)执行intr_num号中断,用户定义的寄存器值存于
结构inregs中和结构segregs中,执行完后将返回的寄存器值存于结构outregs中.
int intdos(union REGS *inregs,union REGS *outregs)
本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值
存于结构inregs中,执行完后函数将返回的寄存器值存于结构outregs中
int intdosx(union REGS *inregs,union REGS *outregs,struct SREGS *segregs)
本函数执行DOS中断0x21来调用一个指定的DOS函数,用户定义的寄存器值
存于结构inregs和segregs中,执行完后函数将返回的寄存器值存于结构outregs中
void intr(int intr_num,struct REGPACK *preg)本函数中一个备用的8086软件中断接口
它能产生一个由参数intr_num指定的8086软件中断.函数在执行软件中断前,
从结构preg复制用户定义的各寄存器值到各个寄存器.软件中断完成后,
函数将当前各个寄存器的值复制到结构preg中.参数如下:
intr_num 被执行的中断号
preg为保存用户定义的寄存器值的结构,结构如下
┌──────────────────────┐
│struct REGPACK │
│{ │
│ unsigned r_ax,r_bx,r_cx,r_dx; │
│ unsigned r_bp,r_si,r_di,r_ds,r_es,r_flags; │
│} │
└──────────────────────┘
函数执行完后,将新的寄存器值存于结构preg中
void keep(int status,int size)以status状态返回MSDOS,但程序仍保留于内存中,所占
用空间由size决定.
void ctrlbrk(int (*fptr)()) 设置中断后的对中断的处理程序.
void disable() 禁止发生中断
void enable() 允许发生中断
void geninterrupt(int intr_num)执行由intr_num所指定的软件中断
void interrupt(* getvect(int intr_num))() 返回中断号为intr_num的中断处理程序,
例如: old_int_10h=getvect(0x10);
void setvect(int intr_num,void interrupt(* isr)()) 设置中断号为intr_num的中
断处理程序为isr,例如: setvect(0x10,new_int_10h);
void harderr(int (*fptr)()) 定义一个硬件错误处理程序,
每当出现错误时就调用fptr所指的程序
void hardresume(int rescode)硬件错误处理函数
void hardretn(int errcode) 硬件错误处理函数
int inport(int prot) 从指定的输入端口读入一个字,并返回这个字
int inportb(int port)从指定的输入端口读入一个字节,并返回这个字节
void outport(int port,int word) 将字word写入指定的输出端口port
void outportb(int port,char byte)将字节byte写入指定的输出端口port
int peek(int segment,unsigned offset) 函数返回segment:offset处的一个字
char peekb(int segment,unsigned offset)函数返回segment:offset处的一个字节
void poke(int segment,int offset,char value) 将字value写到segment:offset处
void pokeb(int segment,int offset,int value) 将字节value写到segment:offset处
int randbrd(struct fcb *fcbptr,int reccnt)
函数利用打开fcbptr所指的FCB读reccnt个记录.
int randbwr(struct fcb *fcbptr,int reccnt)
函数将fcbptr所指的FCB中的reccnt个记录写到磁盘上
void segread(struct SREGS *segtbl)函数把段寄存器的当前值放进结构segtbl中
int getverify() 取检验标志的当前状态(0=检验关闭,1=检验打开)
void setverify(int value)设置当前检验状态,
value为0表示关闭检验,为1表示打开检验
int getcbrk()本函数返回控制中断检测的当前设置
int setcbrk(int value)本函数用来设置控制中断检测为接通或断开
当value=0时,为断开检测.当value=1时,为接开检测
int dosexterr(struct DOSERR *eblkp)取扩展错误.在DOS出现错误后,此函数将扩充的
错误信息填入eblkp所指的DOSERR结构中.该结构定义如下:
┌──────────────┐
│struct DOSERR │
│{ │
│ int exterror;/*扩展错误*/ │
│ char class; /*错误类型*/ │
│ char action; /*方式*/ │
│ char locus; /*错误场所*/ │
│} │
└──────────────┘
构成c语言程序的基本单位是
构成c语言程序的基本单位是函数。函数介绍:计算机的函数,是一个固定的一个程序段,或称其为一个子程序,它在可以实现固定运算功能的同时,还带有一个入口和一个出口,所谓的入口,就是函数所带的各个参数,我们可以通过这个入口,把函数的参数值代入子程序,供计算机处理。程序参数:一个较大的程序...
c语言子程序的写法,子函数main函数写哪,还用写吗
1、子程序不用写main函数。2、每个程序只有一个main函数。(如果在类里看到了main函数那个不是通常意义上的main函数。只是一个名字叫做main的自定函数)。main函数会接受系统传入的参数。参数是固定的。(但是类里如果见到main函数,肯定是自己定义的参数)。
函数的程序函数
介绍一个较大的程序一般应分为若干个程序块,每一个模块用来实现一个特定的功能。所有的高级语言中都有子程序这个概念,用子程序实现模块的功能。在C语言中,子程序的作用是由一个主函数和若干个函数构成。由主函数调用其他函数,其他函数也可以互相调用。同一个函数可以被一个或多个函数调用任意多次...
到底什么是C语言的函数?
最简单的理解,函数就是一个子程序 或者说是程序的模块、零件 把一些代码封装起来,给他们起个名字(函数名)到时候要用到这些代码的时候,引用用他们的名字就可以了 所谓的函数的参数,就是引用这些代码模块的时候,需要这些模块处理的数据;而函数的返回值,就是处理的结果。C是面向过程的语言,函数...
c语言子程序调用时如何确定奇偶性?
include<stdio.h> int even(int x){ if(x%2==0)return 1;else return 0;} void main(){ int i;scanf("%d",&i);if(even(i)==0)printf("奇数");else printf("偶数");
C语言的子程序该怎么调用?
我没学过VB,但是C里的子函数都是你调用才运算的呀,函数的类型就是返回值的类型,如float count(int a){。。。;return z;}就定义了一个返回值为float型的函数
汇编语言中的子程序有什么作用
子程序:子程序又称为过程,它相当于高级语言中的过程和函数。在一个程序的不同部分,往往要用到类似的程序段,这些程序段的功能和结构形式都相同,只是某些变量的赋值不同,此时就可以把这些程序段写成子程序形式,以便需要时可以调用它;某些常用的特定功能 ...
什么是C语言函数,简单明了让你知道
函数还有很多叫法,比如方法、子例程或程序,等等。C 语言中的函数定义的一般形式如下:在 C 语言中,函数由一个函数头和一个函数主体组成。下面列出一个函数的所有组成部分:以下是 max() 函数的源代码。该函数有两个参数 num1 和 num2,会返回这两个数中较大的那个数:创建 C 函数时,会...
汇编语言函数怎么调用?汇编函数的格式是什么?
在汇编中函数我们称它们为子程序。一般的调用我们就直接使用CALL指令进行调用。参数的传递的话可以使用堆栈空间、内存空间的方式进行。
C语言把主函数改成子函数,请指教(我是初学者)
因为main函数里面的两个子程序都没有返回值,我觉得可以直接把两个子程序的内容替换成main函数中两个子程序,即:include <hidef.h> #include "derivative.h" void main(void) { REFDV=1; SYNR=2; while(!(CRGFLG&0x08)); CLKSEL=0xc0; PWME_PWME1=0x00; PWMPRC...
底胁康力: 库函数(Library function)是把函数放到库里,供别人使用的一种方式..方法是把一些常用到的函数编完放到一个文件里,供不同的人进行调用.调用的时候把它所在的文件名用#include>加到里面就可以了.一般是放到lib文件里的. 一般是指...
崇文区17254745115: c语言的子程序是什么 - ?
底胁康力: 一个程序开始运行时,运行的是主程序段.之后主程序调用的其他程序段就叫子程序. C语言的程序段都是以函数形式存在,所以除了主程序main()以外,其他程序中出现的函数都是子程序.
崇文区17254745115: c语言子程序的写法,子函数main函数写哪,还用写吗 - ?
底胁康力: 1、子程序不用写main函数. 2、每个程序只有一个main函数.(如果在类里看到了main函数那个不是通常意义上的main函数.只是一个名字叫做main的自定函数).main函数会接受系统传入的参数.参数是固定的.(但是类里如果见到main函数,肯定是自己定义的参数).
崇文区17254745115: C语言如何调用子程序? - ?
底胁康力: 在C/C++中,没有子程序的说法,而叫做函数.函数可以有返回值,不需要时,可定义为void类型. 函数的使用与子程序的用法相同,没有什么特殊之处.例如 ............................................................................. int max(int a, int b) { /* 返回a和b的最大...
崇文区17254745115: C语言中的函数和子程序有什么区别? - ?
底胁康力: C语言中的函数相当于其它高级语言的子程序. C程序中大都只有一个主函数main(), 但实用程序往往由多个函数组成,通过对函数模块的调用实现特定的功能..... 从函数定义的角度看,函数可分为库函数和用户定义函数两种. 1) 库函数...
崇文区17254745115: C语言 把以下函数封装成自己写的函数和接口 strlen atoi strcpy strcat s - ?
底胁康力: 楼上智商拙计啊 int my_strlen(char *buf) { int count = 0; for(; *buf != '\0'; *buf ++) { count ++; } return count; } 剩下的继续追问吧,一次上传不完
崇文区17254745115: C语言的子程序该怎么调用? - ?
底胁康力: 我没学过VB,但是C里的子函数都是你调用才运算的呀,函数的类型就是返回值的类型,如float count(int a){...;return z;}就定义了一个返回值为float型的函数
崇文区17254745115: c语言中库函数原理 - ?
底胁康力: 库函数顾名思义是把函数放到库里..是别人把一些常用到的函数编完放到一个文件里,供别人用.别人用的时候把它所在的文件名用#include<>加到里面就可以了.一般是放到lib文件里的.... 编译器提供的可在c源程序中调用的函数.可分为两类,一类是c语言标准规定的库函数,一类是编译器特定的库函数. 由于版权原因,库函数的源代码一般是不可见的,但在头文件中你可以看到它对外的接口.如果想具体了解库函数是怎么具体实现的,可以在网上找到库函数的源代码.之后进行研究.祝你成功!希望我的回答对您有帮助!
崇文区17254745115: c语言接口程序具体应用是什么,工作的时候能用到书本上的具体的是什么?
底胁康力: 比如说int 函数名(传入变量名及类型如:int a) 这个就是个接口 要求你要传出一个int型的值给我!!和我的函数对接!
崇文区17254745115: C语言中如何调用子程序?
底胁康力: C语言中,子程序是通过函数来实现的,一个函数相当于一个有独立功能的子程序,子程序意在体现着main函数的作用. 函数机制的实现通常需要经过设计、声明和调用来完成的. 所有的函数在调用之前都必须声明,声明函数必须包括函数名...