从一个文件读取数据,应用程序首先要调用操作系统函数
在文件I/O中,要从一个文件读取数据linux文件句柄,应用程序首先要调用操作系统函数并传送文件名,并选一个到该文件的路径来打开文件。该函数拿回一个顺序号,即Perl文件句柄(filehandle)linux文件句柄,该Perl文件句柄对于打开的文件是惟一的辨识根据。要从文件中读取一块数据,应用程序须要调用函数ReadFile,并将Perl文件句柄在显存中的地址和要拷贝的字节数传送给操作系统。当完成任务后,在通过调用系统函数来关掉该文件。
不仅你模仿唯我论者哲学家编撰一个人工智能程序,你的程序使用不和外界通信的方式。在班级事例中的第三和四行,你将见到"GRADES",这是引用另一个Perl文件的数据类型,称为据柄(filehandle)。一个句柄就是你给一个文件,设备,管套(socket)或管线的一个名子,便于帮助你记住你正处理的名子,并隐藏个别缓存等的复杂性。(在内部,句柄类似C++语言的流(streams),或BASIC中的I/O通道)句柄使你从不同的地方输入和输出给不同的地方都较容易。使Perl成为好语言的一个诱因是它能和多个文件通信并一次处理她们。对外部对象有好的符号名子是一个好语言的一个组成部份[1]。
其他使Perl是一个好语言的是:它是8位的,是可嵌入的,你能通过扩充模式在Perl中嵌入其他程序。它是简明的,网路上容易使用。环境上是清楚的,容易对话。你能以许多不同的方式引用它(如同上面看见的)。其实,语言本身不是这么严格的结构,以至于你不能使它超出你的问题。又回到TMTOWTDI。
你创建一个句柄,并通过open函数把它和一个文件连结。open有两个参数:句柄和你想与它连结的一个文件名。Perl也给出一些预定义(和预打开的)句柄。STDIN是你程序的正常输入通道,而STDOUT是你程序的正常输出的通道。STDERR是一个附加的输出通道,以便当把输入转为输出时,程序能给出一些说明[2]。
通常地,这种句柄和你的终端连结,所以你能输入你的程序并能看见,但她们也可以和文件连结。Perl能给你这种预定义句柄,由于你的操作系统已提供这种。在UNIX下,进程从他的父进程(通常是一个shell)承继标准输入,输出和错误。一个shell的责任之一是构建这种I/O流,便于子进程毋须考虑那些)。
既然你能为各类目的(输入,输出,管线)使用open函数创建句柄,你就必须能指明你要做哪些。就像在UNIX命令行一样,你给文件名简单地加些字符。
复制代码代码如下:
open(SESAME,"filename");#从已存在的文件读
open(SESAME,"open(SESAME,">filename");#创建一个文件并对它写
open(SESAME,">>filename");#对已有的文件接着写
open(SESAME,"|output-pipe-command");#构建一个输出过滤
open(SESAME,"input-pipe-command|");#构建一个输入过滤
就像你听到的,你可以任意选名子。一旦打开句柄SESAME,它能够被用于存取文件或管线,直至它被显式地关掉(用close(SESAME)),或对同一句柄的一系列open把这个句柄和另一文件连结[3 ]。
打开一个已打开的句柄是隐式地关掉第一个文件,使它对Perl文件句柄不可取红帽linux系统下载,并打开一个不同的文件。你必须留神这是你真正想做的。有时,碰巧偶然linux 下载工具,例如,当你open($handle,$file)时,$handle恰好包含空串(null)。确认设置$handle为某个单一个量,否则你将对空句柄打开一个新的文件。
一旦你已为输入打开一个句柄(或你使用STDIN),你能够使用"行读操作",读一行。这个也以砖石操作着称,由于它的形状。这个砖石操作包含你想读的句柄()[4]。使用STDID句柄读用户提供的答案,如下:
空砖石操作,将从命令行指定的所有文件读,假如没有指定,从STDIN读。 (这是许多UNIX"过滤"程序的标准行为)
复制代码代码如下:
printSTDOUT"Enteranumber:";#恳求输入一个数
$number=;#输入一个数
printSTDOUT"Thenumberis$number";#输出这个数
你明白我们给你的事例吗?在print句子中STDOUT做哪些?这就是你使用一个输出句柄的方式之一。一个句柄可以作为print句子的第一个参数,假如存在,告诉往哪里输出。在事例中,句柄是冗余的,由于输出早已是STDOUT。对于输入的缺省是STDIN,对于输出的缺省是STDOUT。 (在班级反例的18行,我们为防止使你混淆,我们省略了。)
我们也有一件事使你不明白。假如你试里面的事例,你可以注意到你得到一个非常的空行。由于读时没有手动地从你的输入行中删掉换行符(newline)(比如,你输入"9")。对于这种情况,当你想删掉换行符时,Perl提供chop和chomp函数。 chop将不加区别地删掉(并返回)传给它的最后一个字符,而chomp只删掉记录标示的末尾(通常地是""),并返回这样删掉的字符数。
以上是从一个文件读取数据,应用程序首先要调用操作系统函数的详细内容。更多信息请关注PHP中文网其他相关文章!

热AI工具

Undresser.AI Undress
人工智能驱动的应用程序,用于创建逼真的裸体照片

AI Clothes Remover
用于从照片中去除衣服的在线人工智能工具。

Undress AI Tool
免费脱衣服图片

Clothoff.io
AI脱衣机

AI Hentai Generator
免费生成ai无尽的。

热门文章

热工具

记事本++7.3.1
好用且免费的代码编辑器

SublimeText3汉化版
中文版,非常好用

禅工作室 13.0.1
功能强大的PHP集成开发环境

Dreamweaver CS6
视觉化网页开发工具

SublimeText3 Mac版
神级代码编辑软件(SublimeText3)

热门话题

有很多Linux初学者经常问起的问题,“Linux有任务管理器吗?”,“怎样在Linux上打开任务管理器呢?”来自Windows的用户都知道任务管理器非常有用。你可以在Windows中按下Ctrl+Alt+Del打开任务管理器。这个任务管理器向你展示了所有的正在运行的进程和它们消耗的内存,你可以从任务管理器程序中选择并杀死一个进程。当你刚使用Linux的时候,你也会寻找一个在Linux相当于任务管理器的一个东西。一个Linux使用专家更喜欢使用命令行的方式查找进程和消耗的内存等等,但是你不用必须

zabbix对中文的支持不是很好,但为了管理方面有时候我们还是会选择中文,在zabbix监控的web界面,图形图标下面的中文会显示一个个小方块,这样是不正确的,需要下载字体。例如“微软雅黑”,“微软雅黑.ttf”命名为“msyh.ttf”,将下载的字体上传到/zabbix/fonts/字体下修改/zabbix/include/defines.inc.php文件中的两处define('ZBX_GRAPH_FONT_NAME','DejaVuSans');define('ZBX_FONT_NAME'

你知道吗,如何在Linux系统上查看帐户的创建日期?如果知道,那么有些什么办法。你成功了么?如果是的话,该怎么做?基本上Linux系统不会跟踪这些信息,因此,获取这些信息的替代方法是什么?你可能会问为什么我要查看这个?是的,在某些情况下,你可能需要查看这些信息,那时就会对你会有帮助。可以使用以下7种方法进行验证。使用/var/log/secure使用aureport工具使用.bash_logout使用chage命令使用useradd命令使用passwd命令使用last命令方式1:使用/var/l

全系统安装如果你在系统范围内安装字体,那么它可以让所有用户使用。此方式的最佳方法是使用官方软件库中的RPM软件包。开始前打开FedoraWorkstation中的“Software”工具,或者其他使用官方仓库的工具。选择横栏中选择“Add-ons”类别。接着在该类别中选择“Fonts”。你会看到类似于下面截图中的可用字体:当你选择一种字体时,会出现一些细节。根据几种情况,你可能能够预览字体的一些示例文本。点击“Install”按钮将其添加到你的系统。根据系统速度和网络带宽,完成此过程可能需要一些

1、从网上找到wingdings、wingdings2、wingdings3、Webdings、MTExtra这些字体2、进入主文件夹,按Ctrl+h键(显示隐藏文件),查看有没有.fonts文件夹,如果没有就创建一个3、把下载下来的wingdings、wingdings2、wingdings3、Webdings、MTExtra这些字体,复制到主文件夹下的.fonts文件夹里,再去启动wps看看还有没有“系统缺失字体……”提醒对话框,没有就成功了! 注意事项:wingdings、wingdin

实验环境:OS:LinuxCentos7.4x86_641.查看当前服务器时区&列出时区并设置时区(如已是正确时区,请略过):#timedatectl#timedatectllist-timezones#timedatectlset-timezoneAsia/Shanghai2.时间时区概念理解:GMT、UTC、CST、DSTUTC:整个地球分为二十四时区,每个时区都有自己的本地时间,在国际无线电通信场合,为了统一起见,使用一个统一的时间,称为通用协调时(UTC:UniversalTim

如何使用一根网线让两台ubuntu主机联网1、准备主机A:ubuntu16.04主机B:ubuntu16.042、主机A有两个网卡,一个接外网,一个与主机B相接。使用命令iwconfig可以查看主机所有网卡。如上图笔者的A主机(笔记本)上的网卡有:wlp2s0:这个是无线网卡。enp1s0:有线网卡,与B主机相连的网卡。其它与我们无关,无需关心。3、配置A的静态IP编辑文件#vim/etc/network/interfaces为接口enp1s0配置静态IP地址,如下图(其中#==========

不同的CPU架构意味着在树莓派上运行DOS并非唾手可得,但其实也没多麻烦。FreeDOS对大家来说也许并不陌生。它是一个完整、免费并且对DOS兼容良好的操作系统,它可以运行一些比较老旧的DOS游戏或者商用软件,也可以开发嵌入式的应用。只要在MS-DOS上能够运行的程序,在FreeDOS上都可以运行。作为FreeDOS的发起者和项目协调人员,很多用户会把我作为内行人士进行发问。而我最常被问到的问题是:“FreeDOS可以在树莓派上运行吗?”这个问题并不令人意外。毕竟Linux在树莓派上能够很好地运
