15个极好的Linux find命令示例

15个极好的Linux find命令示例
15个极好的Linux find命令示例

前阵子,我们审查了15件实事find命令的例子(第一部分)。查找命令可以做很多比只是在寻找基于名称的文件(第2部分)在这篇文章中,让我们来讨论15高级find命令的例子,包括-根据它访问,修改或改变的时间查找文件,查找文件相比之下,执行操作找到的文件等。

基于访问/修改/更改时间查找文件

你可以找到基于以下三个文件的时间属性的文件。

1.访问时间的文件。文件访问时,访问时间得到更新。

2.的文件的修改时间。文件内容修改时,修改时间得到更新。

3.更改文件的时间。更改时间时,被更新的inode数据的变化。

在下面的例子中,min选项之间的差异和时间选项是参数。

?分论点将它的参数为分钟。例如,60分钟(1小时)= 60分钟。

?时间参数,将它的参数为24小时。例如,时间2 = 2 * 24小时(2天)。

?虽然这样做的24个小时计算,小数部分都将被忽略,所以25小时为24小时,和47小时取为24小时,仅48小时为48小时。要获得更清晰的参考atime的部分find 命令的手册页。

例1:找到在1个小时内被更改的文件

想要通过文件修改时间找出文件,可以使用参数-mmin -mtime。下面是man手册中有关mmin和mtime的定义。

?-mmin n文件最后一次修改是在n分钟之内

?-mtime n文件最后一次修改是在n*24小时之内(译者注:也就是n天了呗)执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次修改时间在1个小时(60分钟)之内的文件或目录

1 # find . -mmin -60

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内修改了的文件(文件系统根目录/ 下)

1 # find / -mtime -1

例2:找到1个小时内被访问过的文件

想要通过文件访问时间找出文件,可以使用参数-amin -atime。下面是man手册中有关amin和atime的定义。

?-amin n文件最后一次访问是在n分钟之内

?-atime n文件最后一次访问是在n*24小时之内

执行下面例子中的命令,将会找到当前目录以及其子目录下,最近一次访问时间在1个小时(60分钟)之内的文件或目录

1 # find . -amin -60

同样的方式,执行下面例子中的命令,将会找到24小时(1天)内被访问了的文件(文件系统根目录/ 下)

1 # find / -atime -1

例3:查找一个小时内状态被改变的文件

(译者注:这里的改变更第1个例子的更改文件内容时间是不同概念,这里是更改的是文件inode的数据,比如文件的权限,所属人等等信息)

要查找文件的inode的更改时间,使用-cmin和-ctime选项

?-cmin n文件的状态在n分钟内被改变

?-ctime n文件状态在n*24小时内(也就是n天内)被改变

(译者注:如果上面的n为-n形式,则表示n分钟/天之内,n为+n则表示n分钟/天之前)

下面的例子在当前目录和其子目录下面查找一个小时内文件状态改变的文件(也就是60分钟内):

1 # find . -cmin -60

同样的道理,下面的例子在根目录/及其子目录下一天内(24小时内)文件状态被改变的文件列表:

1 # find / -ctime -1

例4:搜索仅仅限定于文件,不显示文件夹

上面的例子搜索出来不仅仅有文件,还会显示文件夹。因为当一个文件被访问的时候,它所处的文件夹也会被访问,如果你对文件夹不感兴趣,那么可以使用-type f 选项

下面的例子会显示30分钟内被修改过的文件,文件夹不显示:

1 2 3 4 5 6 7 8 9

10

11

12

13

14

15

16

17

18

19

20

21

# find /etc/sysconfig -amin -30

.

./console

./network-scripts

./i18n

./rhn

./rhn/clientCaps.d

./networking

./networking/profiles

./networking/profiles/default

./networking/profiles/default/resolv.conf

./networking/profiles/default/hosts

./networking/devices

./apm-scripts

[注: 上面的输出包含了文件和文件夹]

# find /etc/sysconfig -amin -30 -type f

./i18n

./networking/profiles/default/resolv.conf

./networking/profiles/default/hosts

[注: 上面的输出仅仅包含文件]

例5:仅仅查找非隐藏的文件(不显示隐藏文件):

如果我们查找的时候不想隐藏文件也显示出来,可以使用下面的正则式查找:

下面的命令会显示当前目录及其子目录下15分钟内文件内容被修改过的文件,并且只

列出非隐藏文件。也就是说,以.开头的文件时不会显示出来的

1 # find . -mmin -15 \( ! -regex ".*/\..*" \)

基于文件比较的查找命令

我们平时通过更别的东西进行比较,会更容易记住一些事情。比如说我想找出在我编辑test文件之后编辑过的文件。你可以通过test这个文件的编辑时间作为比较基准去查找之后编辑过的文件:

例6:查找文件修改时间在某一文件修改后的文件:

1 语法: find -newer FILE

下面的例子显示在/etc/passwd修改之后被修改过的文件。对于系统管理员,想知道你新增了一个用户后去跟踪系统的活动状态是很有帮助的(万一那新用户不老实,一上来就乱搞,你很快就知道了 ^_^):

1 # find -newer /etc/passwd

例7:查找文件访问时间在某一文件的修改时间之后的文件:

1 # find -newer /etc/passwd

下面的例子显示所有在/etc/hosts文件被修改后被访问到的文件。如果你新增了一个主机/端口记录在/etc/hosts文件中,你很可能很想知道在那之后有什么文件被访问到了,下面是这个命令:

1 # find -anewer /etc/hosts

例8:查找状态改变时间在某个文件修改时间之后的文件:

1 语法: find -cnewer FILE

下面的例子显示在修改文件/etc/fstab之后所有文件状态改变过的文件。如果你在

/etc/fstab新增了一个挂载点,你很可能像知道那之后那些文件的状态发生了改变,这时候你可以使用如下命令:

1 # find -cnewer /etc/fstab

在查找到的文件列表结果上直接执行命令:

这之前你已经看到了如果通过find命令去查找各种条件的文件列表。如果你对这些find命令还不熟悉,我建议你看完上面的第一部分

接下来这部分我们向你介绍如果在find命令上执行各种不同的命令,也就是说如何去操作find命令查找出来的文件列表。

我们能在find命令查找出来的文件名列表上指定任意的操作:

1 # find -exec \;

其中的OPERATION可以是任意的命令,下面列举一下比较常用的:

? rm 命令,用于删除find查找出来的文件

? mv 命令,用于重命名查找出的文件

? ls -l 命令,显示查找出的文件的详细信息

? md5sum,对查找出的文件进行md5sum运算,可以获得一个字符串,用于检测文件内容的合法性

? wc 命令,用于统计计算文件的单词数量,文件大小等待

?执行任何Unix的shell命令

?执行你自己写的shell脚本,参数就是每个查找出来的文件名

例9:在find命令输出上使用ls -l,列举出1小时内被编辑过的文件的详细信息

1 2 3 4 5 6 7 # find -mmin -60

./cron

./secure

# find -mmin -60 -exec ls -l {} \;

-rw------- 1 root root 1028 Jun 21 15:01 ./cron

-rw------- 1 root root 831752 Jun 21 15:42 ./secure

例10:仅仅在当前文件系统中搜索

系统管理员有时候仅仅想在/挂载的文件系统分区上搜索,而不想去搜索其他的挂载分

区,比如/home/挂载分区。如果你有多个分区被挂载了,你想在/下搜索,一般可以按下面的这样做

下面这个命令会搜索根目录/及其子目录下所有.log结尾的文件名。如果你有多个分区在/下面,那么这个搜索会去搜索所有的被挂载的分区:

1 # find / -name "*.log"

如果我们使用-xdev选项,那么仅仅会在在当前文件系统中搜索,下面是在xdev的man page上面找到的一段-xdev的定义:

?-xdev Don’t descend directories on other filesystems.

下面的命令会在/目录及其子目录下搜索当前文件系统(也就是/挂载的文件系统)中所有以.log结尾的文件,也就是说如果你有多个分区挂载在/下面,下面的搜索不会去搜索其他的分区的(比如/home/)

1 # find / -xdev -name "*.log"

例11:在同一个命令中使用多个{}

linux手册说命令中只能使用一个{},不过你可以像下面这样在同一个命令中使用多个{}

1 # find -name "*.txt" cp {} {}.bkup \;

注意,在同一个命令中使用这个{}是可以的,但是在不同的命令里就不行了,也就是说,如果你想象下面这样重命名文件是行不通的

1 find -name "*.txt" -exec mv {} `basename {} .htm`.html \;

例12:使用多个{}实例

你可以像下面这样写一个shell脚本去模拟上面那个重命名的例子

1 # mv "$1" "`basename "$1" .htm`.html"

上面的双引号是为了防止文件名中出现的空格,不加的话会有问题。然后你把这个shell 脚本保存为mv.sh,你可以像下面这样使用find命令了

1 find -name "*.html" -exec ./mv.sh '{}' \;

所以,任何情况下你在find命令执行中想使用同一个文件名多次的话,先写一个脚本,然后在find中通过-exec执行这个脚本,把文件名参数传递进去就行,这是最简单的办法

例13:将错误重定向到/dev/nul

重定向错误输出一般不是什么好的想法。一个有经验的程序员懂得在终端显示错误并及时修正它是很重要的。

尤其是在find命令中重定向错误不是个好的实践。但是如果你确实不想看到那些烦人的错误,想把错误都重定向到null设备中(也就是linux上的黑洞装置,任何丢进去的东西消失的无影无踪了)。你可以像下面这样做

1 find -name "*.txt" 2>>/dev/null

有时候这是很有用的。比如,如果你想通过你自己的账号在/目录下查找所有的*.conf 文件,你会得到很多很多的"Permission denied"的错误消息,就像下面这样:

1 2 3 4 5 6 7 8 9

10

11

12

13

$ find / -name "*.conf"

/sbin/generate-modprobe.conf

find: /tmp/orbit-root: Permission denied

find: /tmp/ssh-gccBMp5019: Permission denied

find: /tmp/keyring-5iqiGo: Permission denied

find: /var/log/httpd: Permission denied

find: /var/log/ppp: Permission denied

/boot/grub/grub.conf

find: /var/log/audit: Permission denied

find: /var/log/squid: Permission denied

find: /var/log/samba: Permission denied

find: /var/cache/alchemist/printconf.rpm/wm: Permission denied

[Note: There are two valid *.conf files burned in the "Permission denied" messag 你说烦人不?所以,如果你只想看到find命令真实的查找结果而不是这些"Permission

denied"错误消息,你可以将这些错误消息重定向到/dev/null中去

1 2 3 4 $ find / -name "*.conf" 2>>/dev/null

/sbin/generate-modprobe.conf

/boot/grub/grub.conf

[Note: All the "Permission denied" messages are not displayed] 例14:将文件名中的空格换成下划线

你从网上下载下来的音频文件的文件名很多都带有空格。但是带有空格的文件名在

linux(类Unix)系统里面是很不好的。你可以使用find然后后面加上rename命令的替换功能去重命名这些文件,将空格转换成下划线

下面显示怎样将所有mp3文件的文件名中的空格换成_

1 $ find . -type f -iname “*.mp3″ -exec rename “s/ /_/g” {} \;

例15:在find结果中同时执行两条命令

在find的man page页面中,下面是一次文件查找遍历中使用两条命令的语法举例

下面的find命令的例子,遍历文件系统一次,列出拥有setuid属性的文件和目录,写入/root/suid.txt文件,如果文件大小超过100M,将其记录到/root/big.txt中

1 2

# find / \( -perm -4000 -fprintf /root/suid.txt '%#m %u %p\n' \) , \ \( -size +100M -fprintf /root/big.txt '%-10s %p\n' \)

Find命令示例(第一部分)

若你喜欢这篇关于find命令的Daddy文章,别忘了看看第一部分的关于find命令的

Mommy文章。

妈咪,我找到了! -- 15个实用的Linux find命令示例

原文地址:15-practical-unix-linux-find-command-examples-part-2

常用的网络检验命令

常用的网络测试命令 在进行各类网络实验和网络故障排除时,经常需要用到相应的测试工具。网络测试工具基本上分为两类:专用测试工具和系统集成的测试命令,其中,专用测试工具虽然功能强大,但价格较为昂贵,主要用于对网络的专业测试。对于网络实验和平时的网络维护来说,通过熟练掌握由系统(操作系统和网络设备)集成的一些测试命令,就可以判断网络的工作状态和常见的网络故障。我们以Windows XP为例,介绍一些常见命令的使用方法。 1 Ping网络连通测试命令 1.1 Ping命令的功能 Ping是网络连通测试命令,是一种常见的网络工具。用这种工具可以测试端到端的连通性,即检查源端到目的端网络是否通畅。该命令主要是用来检查路由是否能够到达,Ping 的原理很简单,就是通过向计算机发送Internet控制信息协议(ICMP)从源端向目的端发出一定数量的网络包,然后从目的端返回这些包的响应,以校验与远程计算机或本地计算机的连接情况。对于每个发送网络包,Ping最多等待1秒并显示发送和接收网络包的数量,比较每个接收网络包和发送网络包,以校验其有效性。默认情况下,发送四个回应网络包。由于该命令的包长非常小,所以在网上传递的速度非常快,可以快速的检测要去的站点是否可达,如果在一定的时间内收到响应,则程序返回从包发出到收到的时间间隔,这样根据时间间隔就可以统计网络的延迟。如果网络包的响应在一定时间间隔内没有收到,则程序认为包丢失,返回请求超时的结果。这样如果让Ping一次发一定数量的包,然后检查收到相应的包的数量,则可统计出端到端网络的丢包率,而丢包率是检验网络质量的重要参数。 一般在去某一站点是可以先运行一下该命令看看该站点是否可达。如果执行Ping不成功,则可以预测故障出现在以下几个方面:

基本网络命令的使用

实验报告 ( 2014 / 2015 学年第一学期) 课程名称计算机网络 实验名称常用网络命令 实验时间年月日 指导单位 指导教师 学生姓名班级学号 学院(系) 专业

一、实验目的: ●了解常用网络命令及其使用方法。 ●通过网络命令了解网络状态,并利用网络命令对网络进行简单的操作。 ●使用网络模拟器验证ping命令和tracert命令的实现原理,加深对ICMP协议的理 解。 二、实验原理: Windows操作系统本身带有多种网络命令,利用这些网络命令可以对网络进行简单的操作。需要注意是这些命令均是在DOS命令行下执行。本次实验学习5个最常用的网络命 令。 (1)使用ping命令可以检测网络故联通障。 (2)使用tracert命令显示数据包到达目标主机所经过的路径,并显示数据包经过的中 继节点的清单和到达时间。 三、实验设备: 安装有XP操作系统的计算机。 四、背景知识: 1.通过ping命令检测网络故障 (1)命令格式: ping [-t] [-a] [-n count] [-l size] [-f] [-i TTL] [-v TOS][-r count] [-s count] [[-j host-list] | [-k host-list]] [-w timeout] target_name (2)参数的含义如下表所示。 参数含义 -t Ping指定的计算机直到中断,按组合键Ctrl+Break可查询统计信息,按Ctrl+C中断。-a 将地址解析为主机名。 -n count 发送count 指定的ECHO数据包数。默认值为4 。 -l size 发送包含由length 指定的数据量的ECHO数据包。默认为32字节;范围为0~ 65,500。-f 在数据包中设置“不要分段”标志。数据包就不会被路由上的网关分段。 -i TTL 将“生存时间”字段设置为TTL指定的值。 -v TOS 将“服务类型”字段设置为TOS指定的值。 -r count 在“记录路由”字段中记录传出和返回数据包的路由。count 取值为1~9。 -s count 指定count 指定的跃点数的时间戳。 -j host-list 利用host-lis指定的主机列表路由数据包,连续计算机可以被中间网关分隔(路由稀疏源)IP允许的最大数量为9 。 -k host-list 利用host-list指定的主机列表路由数据包,连续计算机不能被中间网关分隔(路由严格源)IP 允许的最大数量为9 。 -w timeout 指定超时间隔,单位为毫秒。 target_nam e 指定要ping的远程主机。 查看ping的相关帮助信息,可在命令行提示符下键入“ping/?” 2.tracert命令 Tracert命令用来显示数据包到达目标主机所经过的路径,并显示数据包经过的中继节点的清单和到达时间。命令功能同Ping类似,但它所获得的信息要比Ping命令详

CAD常用命令汇总及详解

CAD中有哪些命令?我们可以把它们分为几类。一类是绘图类,二类是编辑类,三类是设置类,四类是其它类,包括标注、视图等。我们依次分析。 第一类,绘图类。常用的命令有: Line 直线 Xline 构造线 mline 双线 pline 多义线 rectang 矩形 arc 圆弧 circle 圆 hatch 填充 boundary 边界 block 定义块 insert 插入快 第二类,编辑类。常用的命令有: Matchprop 特性匹配 Hatchedit 填充图案编辑 Pedit 多义线编辑 Erase 擦除 Copy 拷贝 Mirror 镜像 Offset 平移 Array 阵列 Move 移动 Rotate 旋转 Scale 缩放 Stretch 拉伸 Lengthen 拉长 Trim 裁减 Extend 延伸 Break 打断 Fillet 倒圆角 Explode 炸裂 Align 对齐 Properties 属性

绘图工具栏: 直线(L):全称(line) 在屏幕上指定两点可画出一条直线。也可用相对坐标 或者在正交模式打开的情况下,直接给实际距离鼠标拖动来控制方向 构造线(XL):全称(xline) H为水平V为垂直O为偏移A为角度B为等分一个角度。 多段线(PL):全称(pline) 首先在屏幕上指定一点,然后有相应提示: 指定下一个点或[圆弧(A)/半宽(H)/长度(L)/放弃(U)/宽度(W)]。可根据需要来设置。 其中“圆弧”指定宽度可画任意角度圆弧;“半宽”指多段线的一半宽度,即如要高线宽为10,则5;“长度”给相应的值,则画出相应长度的多段线;“放弃”指放弃一次操作;“宽度”指多段线的宽度 多边形(pol):全称(polygon) 所绘制多边形为正多边形,边数可以自己设 E:根据边绘制多边形也可根据圆的半径利用外切和内接来画正多边形 矩形(REC):全称(rectang) 点击矩形工具后出现下列提示: 指定第一个角点或[倒角(C)/标高(E)/圆角(F)/厚度(T)/宽度(W)] 其中“倒角”是将90度直角的两条边割去一点。变成一个斜角。“标高”是空间上的意义可以在三视图当中展现出来,标高是相对的;“圆角”:即是将四个直角边倒成半径为X的圆角;“厚度”:空间上的意义,可在Z轴上表现出来“宽度”:平面空间的概念,指矩形四边的宽度。 圆弧(ARC或A):默认为3点画圆弧,成弧方向为逆时针,画优弧半径给负值。绘图菜单中有如下选项: 起点、圆心、端点; 起点、圆心、角度; 起点、圆心、长度; 起点、端点、角度; 起点、端点、方向; 起点、端点、半径; 圆心、起点、端点; 圆心、起点、角度; 圆心、起点、长度;

!函数返回值

函数返回值 int Count() { int i,j; i=100; j=200; return i+j; } 测试函数: void Test() { int k=Count(); printf("\n k[%d]\n"); } C/C++的函数返回值一般是放在寄存器eax里的,而不是在栈里。 你的这一句int k = Count()的汇编语句就是这样: mov [esp - 4], eax //eax里是300,esp - 4是局部变量k的位置 你可以在vc里做个实验: int add(int a, int b) { __asm { mov eax,a // 把参数1存入eax add eax,b // eax += 参数2, 结果在eax里 } } int main() { printf("%d\n", add(3, 4)); return 0; } 楼主需要了解下寄存器这一概念,我就不把C/C++函数的汇编代码给发出来了。 还有在汇编层面来看,函数的返回值根本就没有定论,函数可以通过多种方式返回。保存返回值在eax里只是C/C++的一个约定而已。

返回值可以放在栈里,但你在C的语言层面上可能做不到,其实随着函数的结束,mov esp, ebp这条指令过后,函数内部的局部变量就报废了。如果你之后没改变过栈的内容,你可以用栈来存返回值,但比起用寄存器来存储,存储和读取要慢的多。 自己突发奇想在vc下试了下用栈“返回”值,写了段代码: #include void __declspec(naked) __stdcall return_a_value() { int local; local = 1990; // 栈空间 __asm ret } int main() { int local = 1; return_a_value(); // 用栈返回值 printf("%d\n", local); return 0; } 汇编看c之一,简单函数调用 简单的函数调用,通过简单的函数调用反汇编可以清楚了解如下 1.栈到底是什么,如何操纵栈的? 2.参数和临时变量是以什么形式在哪存放? 3.如何传递返回值? 举例: #include

常用的网络工具命令解析

如果你玩过路由器的话,就知道路由器里面那些很好玩的命令缩写。 例如,"sh int" 的意思是"show interface"。 现在Windows 2000 也有了类似界面的工具,叫做netsh。 我们在Windows 2000 的cmd shell 下,输入netsh 就出来:netsh> 提示符, 输入int ip 就显示: interface ip> 然后输入dump ,我们就可以看到当前系统的网络配置: # ---------------------------------- # Interface IP Configuration # ---------------------------------- pushd interface ip # Interface IP Configuration for "Local Area Connection" set address name = "Local Area Connection" source = static addr = 192.168.1.168 mask = 255.255.255.0 add address name = "Local Area Connection" addr = 192.1.1.111 mask = 255.255.255.0 set address name = "Local Area Connection" gateway = 192.168.1.100 gwmetric = 1 set dns name = "Local Area Connection" source = static addr = 202.96.209.5 set wins name = "Local Area Connection" source = static addr = none

【实验一】常用网络管理命令的使用

实验1 常用网络管理命令的使用 一.实验目的 1.掌握各种主要命令的作用。 2.掌握各种网络命令的主要测试方法。 3.理解各种网络命令主要参数的含义。 二.实验环境 1.安装有Windows 2003 Server操作系统的计算机二台。 2.至少有两台机器通过交叉双绞线相连或通过集线器相连。 三.实验理论基础 在网络调试的过程中,常常要检测服务器和客户机之间是否连接成功、希望检查本地计算机和某个远程计算机之间的路径、检查TCP/IP的统计情况以及系统使用DHCP分配IP地址时掌握当前所有的TCP/IP网络配置情况,以便及时了解整个网络的运行情况,以确保网络的连通性,保证整个网络的正常运行。在Windows 2003中提供了以下命令行程序。 (1) ping:用于测试计算机之间的连接,这也是网络配置中最常用的命令; (2) ipconfig:用于查看当前计算机的TCP/IP配置; (3) netstat:显示连接统计; (4) tracert:进行源主机与目的主机之间的路由连接分析; (5) arp:实现IP地址到物理地址的单向映射。 四.实验参考步骤 1.Ping命令 Ping用于确定网络的连通性。命令格式为:Ping 主机名/域名/IP地址 一般情况下,用户可以通过使用一系列Ping命令来查找问题出在什么地方,或检验网络运行的情况时。典型的检测次序及对应的可能故障如下: (1)ping 127.0.0.1:如果测试成功,表明网卡、TCP/IP协议的安装、IP地址、子网掩码的设置正常。如果测试不成功,就表示TCP/IP的安装或运行存在某些最基本的问题。 (2)ping 本机IP:如果测试不成功,则表示本地配置或安装存在问题,应当对网络设备和通讯介质进行测试、检查并排除。 (3)ping 局域网内其它IP:如果测试成功,表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码不正确或网卡配置错误或电缆系统有问题。 (4)ping 网关IP:这个命令如果应答正确,表示局域网中的网关或路由器正在运行并能够做出应答。 (5)ping 远程IP:如果收到正确应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet。 (6) ping localhost:localhost是系统的网络保留名,它是127.0.0.1的别名,每台计算机都应该能够将该名字转换成该地址。如果没有做到这点,则表示主机文件(/Windows/host)存在问题。 (7)Ping https://www.360docs.net/doc/353956785.html,(一个著名网站域名):对此域名执行Ping命令,计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示本机DNS服务器的IP地址配置不正确,或DNS服务器有故障。 如果上面所列出的所有Ping命令都能正常运行,那么计算机进行本地和远程通信基本上就

ORACLE SQLPLUS 常用命令及解释

Oracle SQLPlus常用命令及解释 1.@ 执行位于指定脚本中的SQLPlus语句。可以从本地文件系统或Web服务器中调用脚本。可以为脚本中的变量传递值。在iSQL*Plus中只能从Web服务器中调用脚本。 2.@@ 执行位于指定脚本中的SQL*Plus语句。这个命令和@(“at”符号)命令功能差不多。在执行嵌套的命令文件时它很有用,因为它会在与调用它的命令文件相同的路径或url中查找指定的命令文件。在iSQL*Plus中只支持url形式。 3./ 执行保存在SQL缓冲区中的最近执行的SQL命令或PL/SQL块。在SQL*Plus命令行中,可在命令提示符或行号提示符使用斜线(/)。也可在iSQL*Plus的输入区中使用斜线(/)。斜线不会列出要执行的命令。 4.ACCEPT 可以修改既有变量,也可定义一个新变量并等待用户输入初始值,读取一行输入并保存到给出的用户变量中。ACCEPT在iSQL*Plus中不可用。 5.APPEND 把指定文本添加到SQL缓冲区中当前行的后面。如果text的最前面包含一个空格可在APPEND和text间输入两个空格。如果text的最后是一个分号,可在命令结尾输入两个分号(SQL*Plus会把单个的分号解释为一个命令结束符)。APPEND 在iSQL*Plus中不可用。 6.ARCHIVE LOG 查看和管理归档信息。启动或停止自动归档联机重做日志,手工(显示地)归档指定的重做日志,或者显示重做日志文件的信息。 7.ATTRIBUTE 为对象类型列的给定属性指定其显示特性,或者列出单个属性或所有属性的当前显示特性。 8.BREAK 分开重复列。指定报表中格式发生更改的位置和要执行的格式化动作(例如,在列值每次发生变化时跳过一行)。只输入BREAK而不包含任何子句可列出当前的BREAK定义。 9.BTITLE 在每个报表页的底部放置一个标题并对其格式化,或者列出当前BTITLE定义。

C#多线程函数如何传参数和返回值

C#多线程函数如何传参数和返回值 提起多线程,不得不提起委托(delegates)这个概念. 我理解的委托就是具有同样参数和返回值的函数的集合. 比如 public delegate void MyDelegate(int arg); 就是这种形式的函数 void Myfuntion(int i); 的集合. 如何将一个函数加入委托的集合? MyDelegate dele = new MyDelegate(Myfuntion1); 再增加一个 dele += new MyDelegate(Myfuntion2); ... 委托函数 dele 就是具有整数参数和空返回值的函数 Myfuntion1,2的集合. 调用这个委托函数 dele(1); 就是逐个调用 Myfuntion1,2,... 一般线程函数的声明和启动 Thread t = new Thread(new ThreadStart(MyFunction)); t.Start(); 正是调用了没有参数和返回值的委托函数 ThreadStart 其中的参数MyFunction 是这个委托函数中的一员. 很明显这样无法传参数和返回值,那我们该怎么办? 答案就在委托的BeginInvoke() 方法上, BeginInvoke() 也是(异步)启动一个新线程. 例如 MyDelegate dele = new MyDelegate (MyFunction); dele.BeginInvoke(10,"abcd"); void MyFunction(int count, string str); 可以实现参数的传递. 如何收集线程函数的返回值? 与BeginInvoke 对应有个 EndInvoke 方法,而且运行完毕返回 IAsyncResult 类型的返回值.这样我们可以这样收集线程函数的返回值 MyDelegate dele = new MyDelegate (MyFunction); IAsyncResult ref = dele.BeginInvoke(10,"abcd"); ...

实验报告2 常用网络命令的使用

计算机网络实验报告 班级信工(2)班日期 2016-5-12 学号 20130702047 姓名李格 实验名称常用网络命令的使用 一、实验目的 1. 掌握几种常用的网络命令,通过使用这些命令能检测常见网络故障。 2. 理解各命令的含义,并能解释其显示内容的意义。 二、实验步骤 (一)ping 命令的使用 1、单击开始按钮,输入cmd 并按回车键,进入windows DOS环境。 2、输入ping/? 回车,了解ping命令的基本用法。结果如下: 最常用的ping命令是在ping后面直接跟域名或IP地址。测试内网或外网的联通情况。 3、依次输入以下命令并查看分析结果。 (1)输入ping https://www.360docs.net/doc/353956785.html,并回车查看分析结果。 结果如下:

分析: (2)输入ping 218.197.176.10并回车查看分析结果。结果如下: 分析: (3)输入ping https://www.360docs.net/doc/353956785.html, 并回车查看分析结果。结果如下: 分析: (3)输入pi ng 121.14.1.189 并回车查看分析结果。

结果如下: 分析: 4、使用不同的参数测试ping命令。 结果如下: 分析: (二)ipconfig 命令的使用 1、单击开始按钮,输入cmd 并按回车键,进入windows DOS环境。 2、输入ipconfig/? 回车,了解ipconfig 命令的基本用法。结果如下:

3、依次输入以下命令并查看分析结果。 (1)输入ipconfig 并回车查看并分析结果。结果如下:

分析: (2)输入ipconfig/all 并回车查看分析结果。结果:

函数的参数

如果把函数比喻成一台机器,那么参数就是原材料,返回值就是最终产品;函数的作用就是根据不同的参数产生不同的返回值。 函数的参数 在函数定义中出现的参数可以看做是一个占位符,它没有数据,只能等到函数被调用时接收传递进来的数据,所以称为形式参数,简称形参。 函数被调用时给出的参数包含了实实在在的数据,会被函数内部的代码使用,所以称为实际参数,简称实参。 形参和实参的功能是作数据传送,发生函数调用时,实参的值会传送给形参。 形参和实参有以下几个特点: 1) 形参变量只有在函数被调用时才会分配内存,调用结束后,立刻释放内存,所以形参变量只有在函数内部有效,不能在函数外部使用。 2) 实参可以是常量、变量、表达式、函数等,无论实参是何种类型的数据,在进行函数调用时,它们都必须有确定的值,以便把这些值传送给形参,所以应该提前用赋值、输入等办法使实参获得确定值。 3) 实参和形参在数量上、类型上、顺序上必须严格一致,否则会发生“类型不匹配”的错误。

函数调用中发生的数据传送是单向的,只能把实参的值传送给形参,而不能把形参的值反向地传送给实参。因此在函数调用过程中,形参的值发生改变,而实参中的值不会变化。 【示例】计算1+2+3+...+(n-1)+n 的值。 1.#include 2.int sum(int n){ // 有参函数 3.int i; 4.for(i=n-1; i>=1; i--){ 5. n+=i; 6.} 7.printf("The inner n = %d\n",n); 8.return n; 9.} 10.int main(){ // 无参函数 11.int m, total; 12.printf("Input a number: "); 13.scanf("%d",&m); 14. total =sum(m); 15.printf("The outer m = %d \n", m); 16.printf("1+2+3+...+%d+%d = %d\n", m-1, m, total); 17.return0; 18.} 运行结果: Input a number: 100↙ The inner n = 5050 The outer m = 100

网络命令NET的基本用法

网络命令NET的基本用法 NET[ACCOUNTS|COMPUTER|CONFIG|CONTINUE|FILE|GROUP|HELP|HELPMSG|LOCALGROUP |NAME|PAUSE|PRINT|SEND|SESSION|SHARE|START|STATISTICS|STOP|TIME|USE|USER|VIEW] NetAccounts 更新用户帐号数据库、更改密码及所有帐号的登录要求。 命令格式: netaccounts[/forcelogoff:{minutes|no}][/minpwlen:length][/maxpwage:{days|unlimited}][/minpwage:days][/uniquepw:n umber][/domain]参数介绍: (1)、键入不带参数的netaccounts显示当前密码设置、登录时限及域信息。(2)、/forcelogoff:{minutes|no}设置帐号或有效登录时间过期时,被强制退出系统之前所拥有的分钟数。 (3)、/minpwlen:length设置用户帐号密码的最少字符数。 (4)、/maxpwage:{days|unlimited}设置用户帐号密码有效的最大天数。(5)、/minpwage:days设置用户必须保持原密码的最小天数。(6)、/uniquepw:number要求用户更改密码时,必须在经过number次后才能重复使用与之 精选文档

相同的密码。 (7)、/domain在当前域的主域控制器上执行该操作。 (8)、/sync当用于主域控制器时,该命令使域中所有备份域控制器同步例:netaccounts/minpwlen:7将用户帐号密码的最少字符数设置为7netaccounts/forcelogoff:no禁止强制退出系统,默认。 NetComputer 从域数据库中添加或删除计算机。 命令格式:netcomputer\computername{/add|/del}参数介绍: (1)、\computername指定要添加到域或从域中删除的计算机。(2)、/add将指定计算机添加到域。(3)、/del将指定计算机从域中删除。例: netcomputer\abc/add将计算机abc添加到登录域NetConfig 显示当前运行的可配置服务,或显示并更改某项服务的设置。命令格式:netconfig[service[options]]参数介绍: (1)、键入不带参数的netconfig显示可配置服务的列表。 (2)、service通过netconfig命令进行配置的服务(server或workstation)(3)、options服务的特定选项。例: 精选文档

网络常用命令提示符(cmd)语句

网络常用命令提示符(cmd)语句 1.最基本,最常用的,测试物理网络的 ping 192.168.10.88 -t ,参数-t是等待用户去中断测试 2.查看DNS、IP、Mac等 A.Win98:winipcfg B.Win2000以上:Ipconfig/all C.NSLOOKUP:如查看河北的DNS C:\>nslookup Default Server: https://www.360docs.net/doc/353956785.html, Address: 202.99.160.68 >server 202.99.41.2 则将DNS改为了41.2 > https://www.360docs.net/doc/353956785.html, Server: https://www.360docs.net/doc/353956785.html, Address: 202.99.160.68 Non-authoritative answer: Name: https://www.360docs.net/doc/353956785.html, Address: 202.99.160.212 3.网络信使 Net send 计算机名/IP|* (广播) 传送内容,注意不能跨网段 net stop messenger 停止信使服务,也可以在面板-服务修改 net start messenger 开始信使服务 4.探测对方对方计算机名,所在的组、域及当前用户名 ping -a IP -t ,只显示NetBios名 nbtstat -a 192.168.10.146 比较全的 https://www.360docs.net/doc/353956785.html,stat -a 显示出你的计算机当前所开放的所有端口 netstat -s -e 比较详细的显示你的网络资料,包括TCP、UDP、ICMP 和 IP的统计等

6.探测arp绑定(动态和静态)列表,显示所有连接了我的计算机,显示对方IP和MAC地址 arp -a 7.在代理服务器端 捆绑IP和MAC地址,解决局域网内盗用IP: ARP -s 192.168.10.59 00-50-ff-6c-08-75 解除网卡的IP与MAC地址的绑定: arp -d 网卡IP 8.在网络邻居上隐藏你的计算机 net config server /hidden:yes net config server /hidden:no 则为开启 9.几个net命令 A.显示当前工作组服务器列表 net view,当不带选项使用本命令时,它就会显示当前域或网络上的计算机上的列表。 比如:查看这个IP上的共享资源,就可以 C:\>net view 192.168.10.8 在 192.168.10.8 的共享资源 资源共享名类型用途注释 -------------------------------------- 网站服务 Disk 命令成功完成。 B.查看计算机上的用户帐号列表 net user C.查看网络链接 net use 例如:net use z: \\192.168.10.8\movie 将这个IP的movie共享目录映射为本地的Z盘 D.记录链接 net session 例如: C:\>net session 计算机用户名客户类型打开空闲时间

实验一 常用网络命令的使用 实验报告

实验一、常用网络命令的使用 课程计算机网络班级2013167 姓名郑棋元 完成日期15年4月2 日课(内、外)总计本实验用时间四个小时【实验目的】 1.掌握常用网络命令的使用方法; 2.熟悉和掌握网络管理、网络维护的基本内容和方法 【实验内容】 1.阅读实验指导书提供的资料,结合本地环境对WINDOWS 常用网络命 令进行测试和练习。 2.分析总结实验场地的网络环境、拓扑结构、上网方式等。 【实验步骤和结果】 ⑴ARP:

⑵ftp

⑶Ipconfig ⑷Nbtstat

⑸net: ⑹Netstat ⑺Ping

⑻Route ⑼Telnet 没能调试出来⑽Tracert

【实验思考题】 1.说明如何了解本机及其所处网络的网络配置信息? 输入Ipconfig/all(该诊断命令显示所有当前的 TCP/IP 网络配置值) 2.若网络出现故障,说明使用网络命令进行故障检测的常用步骤? 运用Ping(验证与远程计算机的连接) ping 任一IP地址,如果能ping通,说明你的电脑的TCP/IP没有错误。 ping 自己的IP地址,如果能ping通,说明你的网卡都正常。 ping 路由。如果能通,说明你的主机到路由的物理连接还都正常。 ping 网址。如果能通却还是打不开网页,说明dns有错误。 【实验总结】 常用的网络命令虽然看起来简单,可能觉得没什么用处,但是对于网络问题的诊断却非常有用。用windows系统自带的命令行中的常用网络命令来诊断网络故障,不仅快捷,而且信息反映直观。 【实验心得与体会】 掌握了很多常用却不知道或知道却不熟悉的网络命令的使用方法,知道了两台PC机之间传输文件的多种方式。

函数参数返回值总结

函数的参数、返回值总结 (一)参数 ◆函数分: 有参函数:函数名(实参列表) 无参函数:函数名() ◆有参函数调用语句中的实参应与被调函数中的形参在个数、类型、顺序上一致。 ◆参数传递时,实参向形参一一对应进行单向的值传递。值:可是数值(变量或数 组元素)或数值的地址值(指针或数组名)。 (二)返回值 函数的返回值即为函数调用后的结果,可有如下返回结果的方法: (1)通过return语句返回一个值; (2)利用地址做参数返回一个或多个值; (3)利用全局变量返回一个或多个值。 (三)例 1、170页实验内容(1):打印由正三角和倒三角组成的图形。 有一个参数,无返回值。实参向形参传递一个数值。 #include /* 有一个参数,无返回值的函数,打印正三角 */ void f1(int n) /* 形参只能是变量,用来接收实参传来的数值 */ { int i,j,k; for(k=1;k<=n;k++) {for(i=1;i<=10-k;i++) printf(" "); for(j=1;j<=k;j++) printf(" *"); printf("\n");} } /* 有一个参数,无返回值的函数,打印倒三角*/ void f2(int n) {int i,j,k; for(k=n;k>=1;k--) {for(i=1;i<=10-k;i++) printf(" "); for(j=1;j<=k;j++) printf(" *"); /*双引号内应为“空格加半角星号”*/ printf("\n");} } main() { int n; scanf("%d",&n);

常用的9个网络命令

实验:网络常见的9个命令 1.ping命令 ping是个使用频率极高的实用程序,主要用于确定网络的连通性。这对确定网络是否正确连接,以及网络连接的状况十分有用。简单的说,ping就是一个测试程序,如果ping运行正确,大体上就可以排除网络访问层、网卡、Modem的输入输出线路、电缆和路由器等存在的故障,从而缩小问题的范围。 ping能够以毫秒为单位显示发送请求到返回应答之间的时间量。如果应答时间短,表示数据报不必通过太多的路由器或网络,连接速度比较快。ping还能显示TTL(TimeToLive,生存时间)值,通过TTL值可以推算数据包通过了多少个路由器。 (1)命令格式 ping??主机名 ping??域名 如果测试成功,表明网卡、TCP/IP协议的安装、IP地址、子网掩码的设置正常。如果测试不成功,就表示TCP/IP的安装或设置存在有问题。 ②ping本机IP地址 如果测试不成功,则表示本地配置或安装存在问题,应当对网络设备和通讯介质进行测试、检查并排除。 ③ping局域网内其他IP 如果测试成功,表明本地网络中的网卡和载体运行正确。但如果收到0个回送应答,那么表示子网掩码不正确或网卡配置错误或电缆系统有问题。 ④ping网关IP

这个命令如果应答正确,表示局域网中的网关路由器正在运行并能够做出应答。 ⑤ping远程IP 如果收到正确应答,表示成功的使用了缺省网关。对于拨号上网用户则表示能够成功的访问Internet(但不排除ISP的DNS会有问题)。 ⑥pinglocalhost local ⑦ping 对此域名执行Ping命令,计算机必须先将域名转换成IP地址,通常是通过DNS服务器。如果这里出现故障,则表示本机DNS服务器的IP地址配置不正确,或它所访问的DNS服务器有故障 如果上面所列出的所有ping (3)ping命令的常用参数选项 pingIP-t:连续对IP地址执行ping ping其他主机或其他主机ping你的主机时,而显示主机 “设置良好”主机的ping结果进行对比。? ipconfig实用程序可用于显示当前的TCP/IP配置的设置值。这些信息一般用来检验人工配置的TCP/IP设置是否正确。 而且,如果计算机和所在的局域网使用了动态主机配置协议DHCP,使用ipconfig命令可以了解到你的计算机是否成功地租用到了一个IP地址,如果已经租用到,则可以了解它目前得到的是什么地址,包括IP地址、子网掩码和缺省网关等网络配置信息。 下面给出最常用的选项: (1)ipconfig:当使用不带任何参数选项ipconfig命令时,显示每个已经配置了的接口的IP地址、子网掩码和缺省网关值。 (2)ipconfig/all:当使用all选项时,ipconfig能为DNS和WINS服务器显示它已配置且所有使用的附加信息,并且能够显示内置于本地网卡中的物理地址(MAC)。如果IP地址是从DHCP服务器租用的,ipconfig将显示

常用网络命令操作

实验一常用网络命令操作 (一)实验目的: 掌握PING/NET/NETSH路由跟踪命令等常用命令的使用方法, 从这些命令的响应来确定网络的状态和路径情况 (二)实验环境 PC机及互联网 (三)实验内容 1.ping命令的使用 ping命令的具体语法格式:ping目的地址[参数1][参数2] 主要参数有: a:解析主机地址 n:数据:发出数据包的个数,缺省为4 l:数值:所发出缓冲区大小 t:继续执行ping命令,直到用户按下CTRL+C键终止 https://www.360docs.net/doc/353956785.html,stat命令的使用 Netstat[-参数1][参数2] a:显示所有与该主机建立连接的端口信息 b:显示以太网的统计住处参数一般与S参数共同使用 n:以数字的格式显示地址和端口信息 s:显示每个协议的统计情况。 3.用VisualRouter跟踪路由信息,显示从源地址到目的地址 所经过的路由。

(四)实验结果分析: Ping命令: 我们使用ping命令ping百度的IP 202.108.22.5 使用-a参数来解析计算机NetBios名 使用-n 命令改变测试包的数量 使用-t 命令来一直执行ping命令直到键入CTRL+C

Netstat命令: 我们使用-a 命令来查看与我们主机机那里连接的端口信息 我们使用-e 命令显示以太网的统计住处该参数一般与S参数共同使用 我们使用-n 以数字的格式显示端口的地址信息:

我们使用-s显示每个协议的统计情况:

接下来我们使用VisualRouter来跟踪路由信息: 我们尝试着与193.168.110.52通信,并查看路由等信息 我们可以看见地区为:Luxumbourg 该IP属于德国卢森堡 网络为:Fondation RESTERA 防火墙信息:对ping命令不回应,对80端口的空请求不回应 还有一些数据包分析的信息。 从这张图中我还看到了路由的路径: 从 192.168.110.205->192.168.110.1->?->192.168.99.38->192.168.9 9.30->10.0.1.4->218.2.129.161->?->202.97.50.238->202.97.33.1 54->?->4.71.114.101->?->4.69.148.225->212.73.249.26->158.64. 16.189->193.168.110.52

Cad常用命令及使用方法

Cad常用命令及使用方法 一、绘图命令 直线:L 用法:输入命令L/回车/鼠标指定第一点/输入数值(也就是指定第二点)/回车(这时直线就画出来了)/回车(结束命令) 射线:RAY 用法:输入命令RAY/回车/鼠标指定射线起点/指定通过点/回车(结束命令) 构造线:XL 用法:输入命令XL/回车/鼠标指定构造线起点/指定通过点/回车(结束命令) 多段线:PL 用法1:同直线命令 用法2:输入命令PL/回车/指定起点/输入W(绘制带有宽度的线)/回车/指定线起点宽度/回车/指定线结束点宽度/回车/输入数值(线的长度值)/回车(结束命令) 正多边形:POL 用法:输入命令POL/回车/指定边数/回车/鼠标指定正多边形的中心点/输入选项(C外切于圆;I内接于圆)/回车/输入半径/回车(结束命令) 矩形:REC 用法1:输入命令REC/回车/鼠标指定第一角点/指定第二角点 用法2:输入命令REC/回车/输入C(绘制带有倒角的矩形)/回车/输入第一倒角值/回车/输入第二倒角值/回车/鼠标指定第一角点/指定第二角点 用法3:输入命令REC/回车/输入F(绘制带有圆角的矩形)/回车/输入圆角半径/回车/指定第一角点/指定第二角点 圆弧:A 用法:输入命令A/回车/指定圆弧起点/指定圆弧中点/指定圆弧结束点 (绘制圆弧的方法有11种,可参考绘图菜单---圆弧选项) 圆:C 用法:输入命令C/回车/鼠标指定圆心/输入半径值/回车(命令结束) (绘制圆的方法有6种,可参考绘图菜单---圆选项) 样条曲线:SPL 用法:输入命令SPL/回车/鼠标指定要绘制的范围即可/需要三下回车结束命令 椭圆:EL

CISCO 常用命令解释

视图模式介绍: 普通视图 router> 特权视图 router# /在普通模式下输入enable 全局视图 router(config)# /在特权模式下输入config t 接口视图 router(config-if)# /在全局模式下输入int 接口名称例如int s0或int e0 路由协议视图 router(config-route)# /在全局模式下输入router 动态路由协议名称 1、基本配置: router>enable /进入特权模式 router#conf t /进入全局配置模式 router(config)# hostname xxx /设置设备名称就好像给我们的计算机起个名字 router(config)#enable password /设置特权口令 router(config)#no ip domain lookup /不允许路由器缺省使用DNS解析命令 router(config)# Service password-encrypt /对所有在路由器上输入的口令进行暗文加密router(config)#line vty 0 4 /进入设置telnet服务模式 router(config-line)#password xxx /设置telnet的密码 router(config-line)#login /使能可以登陆 router(config)#line con 0 /进入控制口的服务模式 router(config-line)#password xxx /要设置console的密码 router(config-line)#login /使能可以登陆 2、接口配置: router(config)#int s0 /进入接口配置模式 serial 0 端口配置(如果是模块化的路由器前面加上槽位编号,例如serial0/0 代表这个路由器的0槽位上的第一个接口) router(config-if)#ip add xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx /添加ip 地址和掩码router(config-if)#enca hdlc/ppp 捆绑链路协议 hdlc 或者 ppp 思科缺省串口封装的链路层协议是HDLC所以在show run配置的时候接口上的配置没有,如果要封装为别的链路层协议例如PPP/FR/X25就是看到接口下的enca ppp或者enca fr router(config)#int loopback /建立环回口(逻辑接口)模拟不同的本机网段 router(config-if)#ip add xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx /添加ip 地址和掩码给环回口 在物理接口上配置了ip地址后用no shut启用这个物理接口反之可以用shutdown管理性的关闭接口 3、路由配置: (1)静态路由 router(config)#ip route xxx.xxx.xxx.xxx xxx.xxx.xxx.xxx 下一条或自己的接口router(config)#ip route 0.0.0.0 0.0.0.0 s 0 添加缺省路由 (2)动态路由 rip协议 router(config)#router rip /启动rip协议 router(config-router)#network xxx.xxx.xxx.xxx /宣告自己的网段 router(config-router)#version 2 转换为rip 2版本 router(config-router)#no auto-summary /关闭自动汇总功能,rip V2才有作用 router(config-router)# passive-int 接口名 /启动本路由器的那个接口为被动接口

C语言函数说明与返回值

C语言函数说明与返回值 在学习C语言函数以前,我们需要了解什么是模块化程序设计方法。 人们在求解一个复杂问题时,通常采用的是逐步分解、分而治之的方法,也就是把一个大问题分解成若干个比较容易求解的小问题,然后分别求解。程序员在设计一个复杂的应用程序时,往往也是把整个程序划分为若干功能较为单一的程序模块,然后分别予以实现,最后再把所有的程序模块像搭积木一样装配起来,这种在程序设计中分而治之的策略,被称为模块化程序设计方法。 在C语言中,函数是程序的基本组成单位,因此可以很方便地用函数作为程序模块来实现C语言程序。 利用函数,不仅可以实现程序的模块化,程序设计得简单和直观,提高了程序的易读性和可维护性,而且还可以把程序中普通用到的一些计算或操作编成通用的函数,以供随时调用,这样可以大大地减轻程序员的代码工作量。 函数是C语言的基本构件,是所有程序活动的舞台。函数的一般形式是: type-specifier function_name(parameter list) parameter declarations { body of the function } 类型说明符定义了函数中return语句返回值的类型,该返回值可以是任何有效类型。如果没有类型说明符出现,函数返回一个整型值。参数表是一个用逗号分隔的变量表,当函数被调用时这些变量接收调用参数的值。一个函数可以没有参数,这时函数表是空的。但即使没有参数,括号仍然是必须要有的。参数说明段定义了其中参数的类型。

当一个函数没有明确说明类型时, C语言的编译程序自动将整型( i n t)作为这个函数的缺省类型,缺省类型适用于很大一部分函数。当有必要返回其它类型数据时,需要分两步处理: 首先,必须给函数以明确的类型说明符;其次,函数类型的说明必须处于对它的首次调用之前。只有这样,C编译程序才能为返回非整型的值的函数生成正确代码。 4.1.1 函数的类型说明 可将函数说明为返回任何一种合法的C语言数据类型。 类型说明符告诉编译程序它返回什么类型的数据。这个信息对于程序能否正确运行关系极大,因为不同的数据有不同的长度和内部表示。 返回非整型数据的函数被使用之前,必须把它的类型向程序的其余部分说明。若不这样做,C语言的编译程序就认为函数是返回整型数据的函数,调用点又在函数类型说明之前,编译程序就会对调用生成错误代码。为了防止上述问题的出现,必须使用一个特别的说明语句,通知编译程序这个函数返回什么值。下例示出了这种方法。 第一个函数的类型说明sum()函数返回浮点类型的数据。这个说明使编译程序能够对sum( ) 的调用产生正确代码。 函数类型说明语句的一般形式是: type_specifier function_name (; ) 即使函数使用形参,也不要将其写入说明句。若未使用类型说明语句,函数返回的数据类型可能与调用者所要求的不一致,其结果是难以预料的。如果两者同处于一个文件中,编译程序可以发现该错误并停止编译。如果不在同一个文件中,编译程序无法发现这种错误。类型检查仅在编译中进行,链接和运行时均不检查。因此,必须十分细心以确保绝不发生上

相关文档
最新文档