常用系统函数
附录B常用系统函数在使用C++语言进行编程时,许多很基本和很重要的功能都由系统的库函数和类库来实现。
为便于学习和使用,本附录列出了一些常用的库函数,供读者查阅。
本附录的依据是Windows环境下VC十+编译系统。
由于不同编译系统提供的库函数和类库可能会稍有差异,读者在实际使用时应参考所使用系统的手册。
为方便查阅,本附录的内容基本按函数类型分类,不同的分类中的内容可能会有重叠。
对每一个函数,包含对其名称、原型、参数的含义、所需头文件、返回值和函数的功能的简洁说明。
凡是函数名称以下划线开头的(如_open)都是Microsoft特殊函数,只适合在Windows 9x和WinNT平台上使用。
其它函数均为ANSI标准函数,在任何平台下都能使用。
为节约篇幅,考虑到本书的读者大多为C十+语言的初学者,本附录只收录了一些常用的函数。
对一些功能相同的函数,省略了其宽字符和多字节字符的版本,读者若需要查阅这方面的内容,可参考相应的资料。
B.1 缓冲区操作函数函数名:_memccpy函数原型:void *_memccpy(void *dest,const void *src,int c,unsigned int count);参数:dest目的指针;sro源指针;c拷贝的最后字符;count字符个数。
所需头文件:<memory.h>或<string.h>功能:从src所指向的地址开始拷贝。
个或多个字节到dest中。
当指定字符c已拷贝或已拷贝count个字节后停止。
返回值:如果字符c被拷贝,返回dest中该字符直接后继字节的指针;如果c没有被拷贝则返回NULL。
函数名:memchr函数原型:void *memchr(const void *buf,int c,sizet count);参数:buf缓冲区的指针;c查找的字符;count检查的字符个数。
所需头文件:<memory.h>或<string.h>功能:查找buf的前count个字节中c的第一次出现,当找到c或已检查完count个字节时停止。
返回值:如果成功,返回buf中c首次出现的位置的指针;否则返回NULL函数名:memcpy函数原型:void *memcpy(void *dest,const void *src,sizet count);参数:dest目的缓冲区;src源缓冲区;count拷贝的字符个数。
所需头文件:<memory.h>或<string.h>功能:从sro拷贝count个字节到dest。
如果源缓冲区和目的缓冲区重叠,这个函数不能保证正确拷贝;对于这种情况可使用memmove处理。
返回值:返回dest的值。
函数名:_memlcmp函数原型:int _memicmp(const void *buf1,const void *buf2,unsigned int count);参数:bufl第一个缓冲区;buf2第二个缓冲区;count字符个数。
所需头文件:<memory.h>或<string.h>功能:比较两个缓冲区bufl和buf2的前count个字符,比较过程是大小写无关的。
返回值:bufl和buf2的前count个字节之间的关系:<0:bufl小于buf2;=0:bufl等于buf2;>0:bufl 大于bur2函数名:memmove函数原型:void *memmove(void *dest,const void *src,sizet count);参数:dest目的对象;src源对象;count拷贝的字符字节个数。
所需头文件;<string.h>功能:从src拷贝count个字节到dest。
如果源区域与目的区域有重叠,memmove也能确保正确拷贝。
返回值:返回dest的值。
函数名:memset函数原型:void *memset(void *dest,int c,sizet count);参数:dest目的指针;c设置的字符;count字符个数。
所需头文件:<memory.h>或<string.h>功能:设置dest的前count个字节为字符c。
返回值:返回dest的值。
函数名:_swab函数原型:void _swab(char *src,char *dest,int n);参数:src需拷贝和交换的数据;dest交换结果数据的存储位置;n拷贝和交换的字节个数。
所需头文件:<stdlib.h>功能:从src拷贝n个字节,交换每对相邻的字节,并把结果存储在dest中。
一般用于为转换到使用不同字节次序的机器上而准备二进制数据。
返回值:无B.2 字符分类函数本类函数都只有一个int型参数,即要测试的整数。
函数名:isalnum函数原型:int isalnum(int c);所需头文件:<ctype.h>功能:测试c是否字母或数字。
返回值:如果c在A~Z、a~z或0~9的范围内,则返回一个非0值;否则返回0。
函数名:isalpha函数原型:int isalpha(int c);所需头文件:<ctype.h>功能:测试c是否字母。
返回值:如果c在A~Z或a~z的范围内,则返回一个非0值;否则返回0。
函数名:_isascll函数原型:int _isascll (int c);所需头文件:<ctype.h>功能:测试c是否ASCII字符。
返回值:如果c为一个0x00~0x7F之间的ASCII字符,则返回一个非0值:否则返回0。
函数名:iscntrl函数原型:int iscntrl(int c);所需头文件:<ctype.h>功能:测试c是否控制字符,返回值:如果c是一个控制字符(0x00~0xlF或0x7F),则返回一个非0值,否则返回0。
函数名:_iscsym函数原型:int _iscsym (int c);所需头文件:<ctype.h>功能:测试c是否字母、下划线或数字。
返回值:如果c是一个字母、下划线或数字,则返回一个非0值;否则返回0。
函数名:_iscsymf函数原型:int _iscsymf (int c);所需头文件:<ctype.h>功能:测试是否字母或下划线。
返回值:如果c是一个字母或下划线,则返回一个非0值;否则返回0。
函数名:isdigit函数原型:int isdigit(int c);所需头文件:<ctype.h>功能:测试是否十进制数字。
返回值:如果c是一个十进制数字(0~9),则返回一个非0值;否则返回0。
函数名:isgraph函数原型:int isgraph(int c);所需头文件:<ctype.h>功能:测试是否空格外的可打印字符。
返回值:如果c是一个非空格的其它可打印字符,则返回一个非0值;否则返回0。
函数名:islower函数原型:int islower(int c);所需头文件:<ctype.h>功能:测试是否小写字母。
返回值:如果c是一个小写字母(a~z)函数名:isprint函数原型:int isprint(int c);所需头文件:<ctype.h>功能:测试是否可打印字符。
返回值:如果c是一个可打印字符包括空格字符(0x20~0x7E),则返回一个非0值;否则返回0。
函数名:ispunct函数原型:int ispunct(int c);所需头文件:<ctype.h>功能:测试是否标点符号。
返回值:如果c是一个非空格字符并且是isalnum不为真的字符,则返回一个非0值;否则返回0。
函数名:isspace函数原型:int isspace(int c);所需头文件:<ctype.h>功能:测试是否空白。
返回值:如果c是一个空白字符(0x09~0x0D或0x20) 则返回一个非0值;否则返回0。
函数名:isupper函数原型:int isupper(int c);所需头文件:<ctype.h>功能:测试是否大写字母。
返回值:如果c是一个大写字母,则返回一个非0值;否则返回0。
函数名:isxdigit函数原型:int isxdigit(int c);所需头文件:<ctype.h>功能:测试是否十六进制数字。
返回值:如果c是一个十六进制数字(A~F,a~f或0~9),则返回一个非0值;否则返回0。
B.2数据转换函数函数名:abs函数原型:int abs(int n);参数:n整数值。
所需头文件:<stdlib.h>或<mat}功能:求绝对值。
返回值:返回n的绝对值。
函数名:atof,atoi,atol函数原型:double atof(const char *string);int atoi(const char *string);long atol(const char *xstring);参数:string要转换的字符串。
所需头文件:atof需要<math.h>和<stdlib.h>,其它需要<stdlib.h>功能:将字符串转换成double(atof)、integer(atoi)或long(ato1)型数据。
返回值:返回转换后的结果值,如果输入不能转换成对应类型的值,返回值为0.0(atof)或0(atoi,atol)。
溢出情况下返回值不确定。
函数名:_ecvt函数原型:char *_ecvt (double value,int count,int dec,int *sign);参数:value被转换的数;count存储的数字个数;dec存储的小数点位置;sign转换的数的符号。
所需头文件:<stdlib.h>功能:将double型浮点数转换成指定长度的字符串,返回值:返回数字字符串的一个指针;没有错误返回函数名:_fcvt函数原型:char *_fcvt (double value,int count,int *dec,int *sign);参数:value被转换的数值lcount小数点之后的位数;dec存储的小数点位置的指针;sign存储的符号指示符的指针。
所需头文件:<stdlib.h>功能;将double型浮点数转换为以空字符结尾的字符串。
返回值:返回一个数字字符的指针;没有错误返回。
函数名:_gcvt函数原型:char _gcvt (double value,int digits,char *buffer);参数:value被转换的值;digits存储的有效数字位数;buffer结果的存储位置所需头文件:<stdlib.h>功能;将double型浮点数转换成字符串,并将其存储在缓冲区中返回值:返回该数字字符串的指针;没有错误返回。
系统函数
(b) 若有一对共轭复极点p1,2= –±jβ,则A(s)中有因子 [(s+)2+β2] → Ke –tcos(βt+θ)ε(t)
(c) 若有r重极点,则A(s)中有因子(s+)r或[(s+)2+β2]r
→ Kit i e–tε(t)或Kit i e–tcos(βt+θ)ε(t) (i=0,1,2,···,r–1)
▲
■
第 7页
结论:
LTI连续因果系统的冲激响应h(t)的函数形式由 H(s)的极点确定。
(1) H(s)在左半平面的极点所对应的响应函数为衰减 的。即:当t→∞时,响应均趋于0。
(2) H(s)在虚轴上的一阶极点所对应的响应函数为稳 态分量。
(3) H(s)在虚轴上的高阶极点或右半平面上的极点, 其所对应的响应函数都是递增的。即:当t→∞时, 响应均趋于∞。
(3)在右半开平面(递增函数) (a) 单极点p=或p1,2=±jβ( >0),相应A(s)中有(s-)或 [(s-)2+β2] → Ketε(t)或Ketcos(βt+θ)ε(t)
(b) r重极点,相应A(s)中有(s-)r或[(s-)2+β2]r
→ Kit ietε(t)或Kit ietcos(βt+θ)ε(t) (i=0,1,2,···,r–1)
H(ejθ)
=
H(z)|z
=
jθ e
式中θ=ωTs,ω为角频率,Ts为取样周期。
▲
■
第 15 页
例:某离散系统的系统函数
H(z) z z z 0.5 z 3
(1) 若系统为因果系统,求单位序列响应h(k); (2) 若系统为反因果系统,求单位序列响应h(k); (3) 若系统存在频率响应,求单位序列响应h(k)。
简介几种系统调用函数:write、read、open、close、ioctl
简介⼏种系统调⽤函数:write、read、open、close、ioctl 在 Linux 中,⼀切(或⼏乎⼀切)都是⽂件,因此,⽂件操作在 Linux 中是⼗分重要的,为此,Linux 系统直接提供了⼀些函数⽤于对⽂件和设备进⾏访问和控制,这些函数被称为系统调⽤(syscall),它们也是通向操作系统本⾝的接⼝。
⼀、系统调⽤ 系统调⽤就是 Linux 内核提供的⼀组⽤户进程与内核进⾏交互的接⼝。
这些接⼝让应⽤程序受限的访问硬件设备,提供了创建新进程并与已有进程进⾏通信的机制,也提供了申请操作系统其他资源的能⼒。
系统调⽤⼯作在内核态,实际上,系统调⽤是⽤户空间访问内核空间的唯⼀⼿段(除异常和陷⼊外,它们是内核唯⼀的合法⼊⼝)。
系统调⽤的主要作⽤如下:1)系统调⽤为⽤户空间提供了⼀种硬件的抽象接⼝,这样,当需要读写⽂件时,应⽤程序就可以不⽤管磁盘类型和介质,甚⾄不⽤去管⽂件所在的⽂件系统到底是哪种类型;2)系统调⽤保证了系统的稳定和安全。
作为硬件设备和应⽤程序之间的中间⼈,内核可以基于权限、⽤户类型和其他⼀些规则对需要进⾏的访问进⾏判断;3)系统调⽤是实现多任务和虚拟内存的前提。
要访问系统调⽤,通常通过 C 库中定义的函数调⽤来进⾏。
它们通常都需要定义零个、⼀个或⼏个参数(输⼊),⽽且可能产⽣⼀些副作⽤(会使系统的状态发⽣某种变化)。
系统调⽤还会通过⼀个 long 类型的返回值来表⽰成功或者错误。
通常,⽤⼀个负的值来表明错误,0表⽰成功。
系统调⽤出现错误时,C 库会把错误码写⼊ errno 全局变量,通过调⽤ perror() 库函数,可以把该变量翻译成⽤户可理解的错误字符串。
⼆、⼏种常⽤的系统调⽤函数2.1 write 系统调⽤ 系统调⽤ write 的作⽤是把缓冲区 buf 的前 nbytes 个字节写⼊与⽂件描述符 fildes 关联的⽂件中。
它返回实际写⼊的字节数。
如果⽂件描述符有错或者底层的设备驱动程序对数据块长度⽐较敏感,该返回值可能会⼩于 nbytes。
fats文件系统函数
fats文件系统函数FAT文件系统函数FAT(File Allocation Table)文件系统是一种常见的磁盘文件系统,用于管理存储设备上的文件和目录。
在操作系统中,提供了一系列的FAT文件系统函数,用于对FAT文件系统进行操作和管理。
本文将介绍几个常用的FAT文件系统函数及其功能。
一、文件和目录操作函数1. 创建文件(CreateFile):该函数用于在指定的路径下创建一个新文件。
可以指定文件名、文件属性和文件的初始大小等参数。
2. 打开文件(OpenFile):该函数用于打开一个已存在的文件,以供读写操作。
可以指定打开方式(只读、读写等)和文件的访问权限。
3. 关闭文件(CloseFile):该函数用于关闭一个已打开的文件,释放文件句柄和相关的资源。
4. 读取文件(ReadFile):该函数用于从打开的文件中读取数据。
可以指定读取的起始位置和读取的字节数。
5. 写入文件(WriteFile):该函数用于向打开的文件中写入数据。
可以指定写入的起始位置和写入的字节数。
6. 删除文件(DeleteFile):该函数用于删除指定路径下的文件。
删除文件时需要注意文件的访问权限和相关的依赖关系。
7. 创建目录(CreateDirectory):该函数用于在指定路径下创建一个新目录。
可以指定目录名和目录的访问权限。
8. 删除目录(RemoveDirectory):该函数用于删除指定路径下的目录。
删除目录时需要注意目录的访问权限和目录是否为空。
二、文件属性和信息函数1. 获取文件属性(GetFileAttributes):该函数用于获取指定文件的属性信息,包括文件大小、创建时间、修改时间等。
2. 设置文件属性(SetFileAttributes):该函数用于设置指定文件的属性信息,可以修改文件的访问权限、文件的创建时间等。
3. 获取文件大小(GetFileSize):该函数用于获取指定文件的大小,以字节为单位。
verilog常用系统函数以及例子
verilog常⽤系统函数以及例⼦1.打开⽂件 integer file_id; file_id = fopen("file_path/file_name");2.写⼊⽂件:$fmonitor,$fwrite,$fdisplay,$fstrobe //$fmonitor只要有变化就⼀直记录 $fmonitor(file_id, "%format_char", parameter); $fmonitor(file_id, "%m: %t in1=%d o1=%h", $time, in1, o1);//$fwrite需要触发条件才记录 $fwrite(file_id, "%format_char", parameter);//$fdisplay需要触发条件才记录 $fdisplay(file_id, "%format_char", parameter);$fstrobe();3.读取⽂件:$fread integer file_id; file_id = $fread("file_path/file_name", "r");4.关闭⽂件:$fclose $fclose(fjile_id);5.由⽂件设定存储器初值:$readmemh,$readmemb $readmemh("file_name", memory_name"); //初始化数据为⼗六进制 $readmemb("file_name", memory_name"); //初始化数据为⼆进制6、⽂件显⽰:$monitor,$write,$display $display,$write⽤于输出信息 $display("rvel = %h hex %d decimal",rvel,rvel); $monitor($time, ,"rxd = %b txd = %b",rxd ,txd)6、⽂件定位 $fseek,⽂件定位,可以从任意点对⽂件进⾏操作; $fscanf,对⽂件⼀⾏进⾏读写。
一些常用的系统函数
附录B 一些常用的系统函数SQL Server 2008提供了许多内置函数,使用这些函数可以方便快捷地执行某些操作。
这些函数通常用在查询语句中,一般来说,允许使用变量、字段或表达式的地方都可以使用这些内置函数。
本附录将介绍一些比较常用的日期函数、字符串函数和类型转换函数。
B.1日期函数日期和时间函数对日期和时间类型的数据执行操作,并返回一个字符串、数字值或日期和时间值。
1. GETDATE作用:按 datetime 值的SQL Server 标准内部格式返回当前的系统日期和时间。
返回类型:datetime。
说明:日期函数可用在 SELECT 语句的选择列表或用在查询语句的 WHERE 子句中。
例1. 用 GETDATE 返回系统当前的日期和时间。
SELECT GETDATE()例2. 在CREATE TABLE语句中使用 GETDATE函数作为列的默认值,这样可简化用户对业务发生日期和时间的输入。
此示例创建Employees 表,用 GETDATE函数的返回值作为员工参加工作的默认报到时间。
CREATE TABLE Employees(eid char(11) NOT NULL,ename char(10) NOT NULL,hire_date datetime DEFAULT GETDATE())2.DATEADD作用:对给定的日期加上一段时间,返回新的 datetime 值。
语法: DATEADD( datepart, number, date )其中:Datepart:是与 number 相加的date部分。
表B.1列出了有效的 datepart 参数。
表B.1 SQL Server识别的日期部分和缩写形式●Number:是一个整数或表达式,是与 date 的 datepart 相加的值。
●date:是返回datetime或smalldatetime值或日期格式字符串的表达式。
返回类型:返回datetime,但如果date参数是smalldatetime,则返回smalldatetime。
第七章 系统函数
H ( e j ) H ( z ) z e j bm (e j zi )
i 1 m
(e p )
j i i 1
n
j j ( e z ) 和 ( e pi ) 为复数,故令 由于是 i
是当h(t)不满足绝对可积条件时,则至少有某个有界输 入f(t)产生无界输出yf(t)。 为此,设f (t)有界,则 f(-t)也有界,并且表示为
1 f ( t ) sgn[h(t )] 0 1
于是有
h(t)>0 h(t)=0 h(t)<0
h(t ) f (t ) h(t )
1 2
j j j 令 Be jw , A1e jw p1, A2e jw p2 ,
则H(jω)又可表示为
Be j B j ( 1 2 ) j (w ) H ( jw ) e | H ( j w ) | e A1e j1 A2e j 2 A1 A2
二、 H(s)与系统的频率特性 若系统的系统函数H(s)的极点全部在左半平面, 即H(s) 的收敛域包含 jω 轴,则
H ( jw ) H ( s ) s jw
bm ( jw si )
i 1 m
H ( jw ) H ( s ) s jw
( jw p )
i 1 i
第七章 系统函数
B() H () A()
连续系统
B( s) bm s m bm1s m1 b1s b0 H ( s) n A( s) s an1s n1 a1s a0
离散系统
B( z) bm z m bm1 z m1 b1 z b0 H ( z) n A( z) z an1 z n1 a1 z a0
verilog系统函数解读
Verilog 中常用的系统函数(2011-12-06 14:54:39)转载▼标签:分类:FPGA的研究杂谈Verilog HDL常用的系统任务1.$display(<输出格式控制列表>,<输出列表>);//显示变量的值或变量的范围,自动加换行如:$display(“dout=%d dout”,dout);2.$write();//和上面的用法相同,但是不会自动加换行3.$monitor(<格式控制>,<输出列表>);//在多模块调试的情况下,许多模块中都调用了$monitor,因为任何时刻只能有一个$monitor起作用,因此需配合$monitoron与$monitoroff使用,把需要监视的模块用$monitoron打开,在监视完毕后及时用$monitoroff关闭,以便把$monitor 让给其他模块使用。
$monitor与$display的不同处还在于$monitor 往往在initial块中调用,只要不调用$monitoroff,$monitor便不间断地对所设定的信号进行监视。
4.$time系统函数:返回64位的整数来表示当前的仿真时刻; $realtime系统函数:返回一个实型数表示当前仿真时刻。
都以模块的仿真时间尺度为基准。
5.$monitor($realtime,,"set=%b",set);//其中一个用法5.系统任务$finish:退出仿真器,返回操作系统6.系统任务$stop:暂停仿真器7.系统任务$random:$random%b或者{$random}%b8.系统任务$readmemb和$readmemh:用于从文件中读取数据到寄存器中,任何时候都可以被执行(数据方向:文件>>寄存器);有以下用法:1) $readmemb("<数据文件名>",<存贮器名>);2) $readmemb("<数据文件名>",<存贮器名>,<起始地址>);3) $readmemb("<数据文件名>",<存贮器名>,<起始地址>,<结束地址>);4) $readmemh("<数据文件名>",<存贮器名>);5) $readmemh("<数据文件名>",<存贮器名>,<起始地址>);6) $readmemh("<数据文件名>",<存贮器名>,<起始地址>,<结束地址>);其中文件中的地址表示方式@hhhh--hh,但是寄存器中的地址可直接用数表示。
aviator系统函数
"Aviator" 是一个开源的系统函数库,用于实现各种复杂的计算和算法。
它提供了许多实用的函数,用于处理各种数据类型和计算任务。
以下是几个常用的Aviator 系统函数:1. ` Aviator::add()`:该函数用于将两个数值相加。
它接受两个参数,返回它们的和。
2. ` Aviator::subtract()`:该函数用于从一个数值中减去另一个数值。
它接受两个参数,返回它们的差。
3. ` Aviator::multiply()`:该函数用于将两个数值相乘。
它接受两个参数,返回它们的积。
4. ` Aviator::divide()`:该函数用于将一个数值除以另一个数值。
它接受两个参数,返回它们的商。
5. ` Aviator::pow()`:该函数用于计算一个数的幂。
它接受两个参数,第一个参数是底数,第二个参数是指数,返回底数的指数次方的结果。
6. ` Aviator::sqrt()`:该函数用于计算一个数的平方根。
它接受一个参数,返回该数的平方根。
7. ` Aviator::abs()`:该函数用于计算一个数的绝对值。
它接受一个参数,返回该数的绝对值。
8. ` Aviator::max()`:该函数用于找到一组数中的最大值。
它接受两个或更多参数,返回其中的最大值。
9. ` Aviator::min()`:该函数用于找到一组数中的最小值。
它接受两个或更多参数,返回其中的最小值。
这只是 Aviator 系统函数库中的一部分,还有更多功能强大的函数可供使用。
具体的使用方法可以参考 Aviator 的官方文档或相关的示例代码。
SAP常用系统函数归纳
SAP常用系统函数归纳函数名描述CONVERSION_EXIT_ALPHA_INPUT 料号前面补0CONVERSION_EXIT_ALPHA_OUTPUT 料号前面减0CONVERSION_EXIT_MATN1_INPUT 料号前面补0CONVERSION_EXIT_MATN1_OUTPUT 料号前面减0LAST_DAY_OF_MONTHS 查询某日期的在当月的最后一天CO_SF_CAUFVD_GET 根据工单号查询订单抬头和项目SO_NEW_DOCUMENT_ATT_SEND_API1 外发邮件VIEW_MAINTENANCE_CALL 调用数据表的维护视图SO_OBJECT_SEND 外发邮件函数名CONVERSION_EXIT_ALPHA_INPUT功能:料号前面补0,实例:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_INPUT' "料号前面加0”EXPORTINGinput = matnr_inIMPORTINGoutput = matnr_out.说明:1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0.2)只能用’字符型’CONVERSION_EXIT_MATN1_INPUT功能:料号前面补0实例:CALL FUNCTION 'CONVERSION_EXIT_MATN1_INPUT' "料号前面补0”EXPORTINGinput = matnr_inIMPORTINGoutput = matnr_outEXCEPTIONSlength_error = 1OTHERS = 2.说明: 1)数字料号入Table需要补0,不会自动产生,有字母料号却会自动补0.2)只能用于料号转换CONVERSION_EXIT_ALPHA_OUTPUT功能:料号前面去0实例:CALL FUNCTION 'CONVERSION_EXIT_ALPHA_OUTPUT' "料号前面去0. EXPORTINGinput = wa_ysy1-matnrIMPORTINGoutput = wa_ysy1-matnr.说明:CONVERSION_EXIT_MATN1_OUTPUT功能:料号前面去0实例:CALL FUNCTION 'CONVERSION_EXIT_MATN1_OUTPUT'EXPORTINGinput = t_afpo-matnrIMPORTINGoutput = t_afpo-matnrEXCEPTIONSOTHERS = 1.说明:LAST_DAY_OF_MONTHS功能:查询某日期的在当月的最后一天CALL FUNCTION 'LAST_DAY_OF_MONTHS'EXPORTINGday_in = f_date "月任意一天类型必须为D(要完成日期##IMPORTINGlast_day_of_month = p_date "月最后一天类型必须为D(完整日期)EXCEPTIONSday_in_no_date = 1OTHERS = 2.说明:CO_SF_CAUFVD_GET功能: 根据工单号查询订单抬头和项目实例:DATA: wa_caufvd TYPE caufvd.CALL FUNCTION 'CO_SF_CAUFVD_GET'"取得订单抬头和项目EXPORTINGaufnr_imp = aufnrIMPORTINGcaufvd_exp = wa_caufvd “订单抬头和项目结构EXCEPTIONSnot_found = 1OTHERS = 2.说明:SO_NEW_DOCUMENT_ATT_SEND_API1功能:邮件发送 SAPoffice: Send new document with attachments using RFC 实例:FORM email_itab. “邮件内容“WRITE: '编号' TO email_itab-line+0(3), "255个长度的文本字段:文本"'记帐日期' TO email_itab-line+3(10),ENDFORM. "email_itabFORM reset_objpack .it_packing_list-transf_bin = space. "标记将以二进制形式传输对象的标志" it_packing_list-head_start = 0."表头开始行"it_packing_list-head_num = 1. "表头行数"it_packing_list-body_start = 1."内容开始行"it_packing_list-body_num = it_message_lines. "内容行数"it_packing_list-doc_type = 'RAW'. "信息类型"APPEND it_packing_list.ENDFORM. "reset_objpackFORM reset_doc_chng .DESCRIBE TABLE email_itab LINES it_message_lines.gd_doc_data-doc_size = it_message_lines * 255 + STRLEN( email_itab ). "SAPoffice 文档的大小 "gd_doc_data-obj_langu = sy-langu. "创建文档使用的语言"gd_doc_data-obj_name = 'SAPRPT'. "文档,文件夹或分配清单的名称"gd_doc_data-obj_descr = '邮件标题'. "Email标题"gd_doc_data-sensitivty = 'F'. "对象:灵敏度(个人的,功能的,...) F:功能" ENDFORM. "reset_doc_chngFORM reset_reclist .SELECT zmaaddrINTO it_receivers-receiverFROM ziebtemail.it_receivers-rec_type = 'U'. "互联网地址APPEND it_receivers.CLEAR it_receivers.ENDSELECT.ENDFORM. "reset_reclistDATA: gd_doc_data LIKE sodocchgi1,gd_sent_all(1) TYPE c,it_message_lines TYPE sy-tabix,it_packing_list LIKE sopcklsti1 OCCURS 0 WITH HEADER LINE,it_receivers LIKE somlreci1 OCCURS 0 WITH HEADER LINE.DATA: BEGIN OF email_itab OCCURS 10.INCLUDE STRUCTURE soli.DATA: END OF email_itab.PERFORM email_itab. "TABLES OUTPUT_TAB.PERFORM reset_doc_chng.PERFORM reset_reclist.PERFORM reset_objpack.CALL FUNCTION 'SO_NEW_DOCUMENT_ATT_SEND_API1'EXPORTINGdocument_data = gd_doc_data “新文档的属性”PUT_IN_OUTBOX = 'X' “标志:发送后将文档移到outbox* COMMIT_WORK = ' '* IMPORTINGSENT_TO_ALL = gd_sent_all “Flag: Document sent to all”* NEW_OBJECT_ID = ID of created object (not document!)tablespacking_list = it_packing_list “SAPoffice:输入对象组件描述”* OBJECT_HEADER =* CONTENTS_BIN =* CONTENTS_TXT =* CONTENTS_HEX =* OBJECT_PARA =* OBJECT_PARB =receivers = email_itab”SAPoffice:API 收件人清单的结构”* EXCEPTIONS* TOO_MANY_RECEIVERS = 1* DOCUMENT_NOT_SENT = 2* DOCUMENT_TYPE_NOT_EXIST = 3* OPERATION_NO_AUTHORIZATION = 4* PARAMETER_ERROR = 5* X_ERROR = 6* ENQUEUE_ERROR = 7* OTHERS = 8.IF sy-subrc <>0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.说明:VIEW_MAINTENANCE_CALL功能:调用数据表的维护视图实例:CALL FUNCTION 'VIEW_MAINTENANCE_CALL'EXPORTINGaction = 'U' “活动(显示/维护/传输)”* CORR_NUMBER = ' '* GENERATE_MAINT_TOOL_IF_MISSING = ' '* SHOW_SELECTION_POPUP = ' 'view_name = 'ZIEBTEMAIL' “要处理的视图/表格的名称”* NO_WARNING_FOR_CLIENTINDEP = ' '* RFC_DESTINATION_FOR_UPGRADE = ' '* CLIENT_FOR_UPGRADE = ' '* VARIANT_FOR_SELECTION = ' '* COMPLEX_SELCONDS_USED = ' '* CHECK_DDIC_MAINFLAG = ' '* SUPPRESS_WA_POPUP = ' '* TABLES* DBA_SELLIST =* EXCL_CUA_FUNCT =* EXCEPTIONS* CLIENT_REFERENCE = 1* FOREIGN_LOCK = 2* INVALID_ACTION = 3* NO_CLIENTINDEPENDENT_AUTH = 4* NO_DATABASE_FUNCTION = 5* NO_EDITOR_FUNCTION = 6* NO_SHOW_AUTH = 7* NO_TVDIR_ENTRY = 8* NO_UPD_AUTH = 9* ONLY_SHOW_ALLOWED = 10* SYSTEM_FAILURE = 11* UNKNOWN_FIELD_IN_DBA_SELLIST = 12* VIEW_NOT_FOUND = 13* MAINTENANCE_PROHIBITED = 14* OTHERS = 15.IF sy-subrc <>0.* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.说明:SO_OBJECT_SEND功能:外发邮件实例:REPORT ztmail02 .DATA: BEGIN OF itab OCCURS 0,pernr LIKE pa0001-pernr,ename LIKE pa0001-ename,END OF itab.DATA: message_content LIKE soli OCCURS 10 WITH HEADER LINE,receiver_list LIKE soos1 OCCURS 5 WITH HEADER LINE,packing_list LIKE soxpl OCCURS 2 WITH HEADER LINE,listobject LIKE abaplist OCCURS 10,compressed_attachment LIKE soli occurs 100 WITH HEADER LINE,w_object_hd_change LIKE sood1 occurs 100 WITH HEADER LINE,compressed_size LIKE sy-index.START-OF-SELECTION.SELECT pernr enameINTO CORRESPONDING FIELDS OF TABLE itabFROM pa0001WHERE pernr <50.LOOP AT itab.WRITE: /02 sy-vline, itab-pernr, 15 sy-vline, itab-ename, 50sy-vline.ENDLOOP.*receiversreceiver_list-recextnam = 'eric.guh@'. “直接外部地址作为接收方”receiver_list-recesc = ‘U’. “收件人类型的说明; U 互联网地址”receiver_list-sndart = ‘MAIL'. “输出设备; MAIL 邮件”receiver_list-sndpri = '1'. “发送:优先级; 1 最高优先权”APPEND receiver_list.*general dataw_object_hd_change-objla = sy-langu. “创建文档使用的语言”w_object_hd_change-objnam = 'Object name'. “文档,文件夹或分配清单的名称”w_object_hd_change-objsns = 'F'. “对象:灵敏度(个人的,功能的,...)” F: 功能w_object_hd_change -OBJDES = ‘Message subject’. “Mail的标题”APPEND w_object_hd_change.*contentmessage_content-line = 'Message content'. “发送的内容”APPEND message_content.CALL FUNCTION 'SO_OBJECT_SEND'EXPORTINGobject_hd_change = w_object_hd_change “通常头数据”object_type = 'RAW' “对象类型”OUTBOX_FLAG = 'X' “标志:发送后将文档移到outboxowner = sy-uname “负责传送的用户”TABLESobjcont = message_content “发送的内容”receivers = receiver_list “接收对象属性”att_cont = compressed_attachment.---------------------------------------------------------------------------------------------函数名描述SD_VBAP_READ_WITH_VBELN 根据销售订单读取表 vbap 中的信息EDIT_LINES 把 READ_TEXT 返回的 LINES 中的行按照 TDFORMAT=“*”重新组织VIEW_MAINTENANCE_CALL 维护表视图函数名描述DY_GET_FOCUS 获得屏幕焦点DY_GET_SET_FIELD_VALUE 获得或者设置屏幕字段的值函数名描述F4IF_INT_TABLE_VALUE_REQUEST 显示检索 helpREAD_TEXT 读取长文本CONVERSION_EXIT_CUNIT_OUTPUT 单位转换SJIS_DBC_TO_SBC 全角转半角SJIS_SBC_TO_DBC 半角转换为全角CO_R0_CHECK_DECIMAL_POINT 根据单位检查数据的小数位POSTAL_CODE_CHECK 检查邮政编码函数名描述CONVERSION_EXIT_ALPHA_INPUT 全数字则在前面补 0CONVERSION_EXIT_ALPHA_INPUT 和上面相反GET_JOB_RUNTIME_INFO 获得 job 相关信息TERMINAL_ID_GET 获得端末 idDATE_CONVERT_TO_FACTORYDATE 把输入日期转为工厂日历日期MESSAGE_TEXT_BUILD 把消息转为文本函数名描述POPUP_TO_CONFIRM 弹出确认窗口函数名描述CONVERSION_EXIT_MATN1_INPUT 物料号码转换函数CONVERSION_EXIT_MATN1_OUTPUT 同上相反CONVERT_TO_LOCAL_CURRENCY 按照指定日期汇率转换金额为指定货币类型 SSF_FUNCTION_MODULE_NAME 根据 form 名取得对应的函数名(SmartForm)函数名描述DATE_CHECK_PLAUSIBILITY 日期 CHECKcl_gui_frontend_services=>gui_upload 上传到服务器cl_gui_frontend_services=>gui_download 下载到服本地SSF_FUNCTION_MODULE_NAME SMARTFORMS 输出报表时,生成一个函数名称,然后 CALL 这个名称函数名描述POPUP_TO_DECIDE_LIST 弹出供选择窗口1.function : SD_VBAP_READ_WITH_VBELN功能:根据销售订单读取表 vbap 中的信息参数:import : I_VBELN 订单号(必输项)I_BYPASSING_BUFFER 是否回避 bufferI_REFRESH_BUFFER 是否清空 buffertables : ET_VBAPVB 不清楚其意义ET_VBAP vbap 表2.form : EDIT_LINES功能:把 READ_TEXT 返回的 LINES 中的行按照 TDFORMAT=“*”重新组织原因:如果用 CREATE_TEXT 登录的长文本不存在该问题,如果是在前台业务登录的 text ,那么存到数据库的时候会在 72 位的地方换行,在 lines 这个表中的 TDFORMAT 设置为空,导致READ_TEXT 返回的表中的行数也许不是你需要的行数。
系统调用函数
系统调用函数系统调用函数系统调用函数是操作系统提供给应用程序接口,通过这些系统调用函数可以访问系统的资源,如:文件、网络资源、内存等等。
常用的系统调用函数有open、read、write、close、malloc、free、stat 等等。
1、open:用于打开文件,open函数的原型如下:int open(const char* pathname, int flag, mode_t mode); pathname:表示需要打开的文件名flag:表示操作方式,如只读、只写等mode:表示权限open函数返回一个文件描述符,通过这个文件描述符可以读取或写入文件。
2、read:用于从文件中读取数据,read函数的原型如下:ssize_t read(int fd, void* buf , size_t count);fd:文件描述符buf:存放读取到的数据的缓冲区count:表示期望读取多少字节数据read函数返回实际读取的字节数,当返回0时表示已到达文件尾。
3、write:用于向文件写入数据,write函数的原型如下:ssize_t write(int fd, const void* buf, size_t count);fd:文件描述符buf:存放要写入的数据的缓冲区count:表示期望写入多少字节数据write函数返回实际写入的字节数。
4、close:用于关闭文件,close函数的原型如下:int close(int fd);fd:文件描述符close函数返回0表示成功关闭文件。
5、malloc:用于在堆上分配内存,malloc函数的原型如下: void* malloc(size_t size);size:表示分配内存的大小malloc函数返回一个指向分配到的内存的指针,如果malloc函数执行失败,返回一个NULL指针。
6、free:用于释放malloc函数分配的内存,free函数的原型如下:void free(void* ptr);ptr:指向要释放的内存的指针free函数没有返回值。
