從一個檔案讀取數據,應用程式首先要呼叫作業系統函數
在檔案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脫衣器

Video Face Swap
使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱門文章

熱工具

記事本++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

1.從網路上找到wingdings、wingdings2、wingdings3、Webdings、MTExtra這些字體2、進入主資料夾,按Ctrl+h鍵(顯示隱藏檔案),查看有沒有.fonts資料夾,如果沒有就建立一個3、把下載下來的wingdings、wingdings2、wingdings3、Webdings、MTExtra這些字體,複製到主資料夾下的.fonts資料夾裡,再去啟動wps看看還有沒有「系統缺少字體…」提醒對話框,沒有就成功了! 注意事項:wingdings、wingdin

全系統安裝如果你在系統範圍內安裝字體,那麼它可以讓所有使用者使用。此方式的最佳方法是使用官方軟體庫中的RPM軟體包。開始前開啟FedoraWorkstation中的「Software」工具,或其他使用官方倉庫的工具。選擇橫欄中選擇“Add-ons”類別。接著在該類別中選擇“Fonts”。你會看到類似下面截圖中的可用字體:當你選擇一種字體時,會出現一些細節。根據幾種情況,你可能能夠預覽字體的一些範例文字。點擊“Install”按鈕將其添加到你的系統。根據系統速度和網路頻寬,完成此過程可能需要一些

實驗環境: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在樹莓派上能夠很好地運
