^M

為什么打開文件有^M

計算機還沒有出現之前,有一種叫做電傳打字機(Teletype Model 33)的玩意,每秒鐘可以打10個字符。但是它有一個問題,就是打完一行換行的時候,要用去0.2秒,正好可以打兩個字符。要是在這0.2秒里面,又有新的字符傳過來,那么這個字符將丟失。
于是,研制人員想了個辦法解決這個問題,就是在每行后面加兩個表示結束的字符。
一個叫做“回車”,告訴打字機把打印頭定位在左邊界;
一個叫做“換行”,告訴打字機把紙向下移一行。
這就是“換行”和“回車”的來歷,從它們的英語名字上也可以看出一二。
后來,計算機發明了,這兩個概念也就被般到了計算機上。那時,存儲器很貴,一些科學家認為在每行結尾加兩個字符太浪費了,加一個就可以。于是,就出現了分歧。

mac和Windows

Unix 系統里,每行結尾只有“<換行>”,即“\n”;Windows系統里面,每行結尾是“<回車><換行>”,即“ \r\n”;Mac系統里,每行結尾是“<回車>”。一個直接后果是,Unix/Mac系統下的文件在Windows里打開的話,所有文字會變成一行;而Windows里的文件在Unix/Mac下打開的話,在每行的結尾可能會多出一個^M符號。

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/382345.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/382345.shtml
英文地址,請注明出處:http://en.pswp.cn/news/382345.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用dup2實現重定向到屏幕終端遇到問題

參考博客&#xff1a;https://blog.csdn.net/qq_26093511/article/details/53255970 參考博客&#xff1a;https://blog.csdn.net/db199410/article/details/52335450#commentBox 1.要解決的問題 通過復制文件描述符來實現文件重定向問題。 2.實現代碼 2.代碼輸出 按照原來的…

redis源碼剖析(十二)—— RDB持久化

文章目錄RBD文件載入RDB文件分析源碼分析核心代碼rdb文件寫入rdb寫入關鍵函數rdbSaveObjectTyperdbSaveStringObjectRawrdbSaveLongLongAsStringObject為避免數據丟失。將redis中的數據保存到磁盤中&#xff0c;避免數據意外丟失。 RBD文件載入 在redis啟動時檢測是否有rdb文件…

linux操作系統之exec函數族

當我們想在進程中執行另外一個函數或程序時&#xff0c;可以使用exec函數。進程調用exec函數&#xff0c;則該進程中用戶空間所有代碼和數據會完全被新程序替換&#xff0c;但是不會創建新進程&#xff0c;因此進程id不會發生改變。 函數族的頭文件&#xff1a;unistd.h l:li…

redis源碼剖析(十三)—— dump.rdb文件分析

文章目錄操作方式查看rdb文件參考文檔redis作者解釋rdb和aof的不同redisRDB文件格式Sripathi Krishnamredis各個版本變化操作方式 127.0.0.1:9999> flushall OK 127.0.0.1:9999> set name hodge OK 127.0.0.1:9999> save OK查看rdb文件 [rootpython src]# od -c dum…

linux操作系統之子進程回收函數wait和waitpid函數小結

一個進程在終止時會關閉所有的文件描述符&#xff0c;釋放用戶空間分配的內存&#xff0c;但是它的PCB還保留著&#xff0c;內核在其中還保留著進程的一些信息&#xff1a;如果正常終止&#xff0c;則保留著退出狀態&#xff1b;如果異常終止則保存著導致進程種植的信號。 在父…

一鍵登錄云阿里云

免密登錄堡壘機 安裝oathtool和sshpass 這兩個文件安裝比較耗費時間&#xff01; brew install oath-toolkit brew install https://raw.githubusercontent.com/kadwanev/bigboybrew/master/Library/Formula/sshpass.rb阿里云item2一鍵連接 1 #!/bin/bash23 sshpass -p 密碼…

linux操作系統進程間通信IPC之管道pipe及FIFO

linux環境下,各進程相互獨立&#xff0c;如果想要交換兩個進程之間的數據&#xff0c;需要通過內核&#xff0c;在內存中提供一個緩存區&#xff0c;一個進程往緩存區中寫數據&#xff0c;一個往緩存區讀數據&#xff0c;內核提供的這種機制稱為進程間通信&#xff08;IPC&…

MySQL為什么要用數字做自增主鍵?

1.MySQL為什么要用數字做自增主鍵&#xff1f; 首先為什么我們使用的是int類型&#xff0c;而不是varchar類型 int永遠是固定的4個字節&#xff0c;而char類型是1~255字節之間 優點 占用空間小&#xff0c;節省CPU開銷在使用中&#xff0c;通常會在主鍵上建立索引&#xff…

linux操作系統進程間通信IPC之共享存儲映射

&#xff08;1&#xff09;文件存儲映射I/O&#xff08;Memory-mapped I/O&#xff09; 一個磁盤文件與存儲空間中的一個緩存區相對應&#xff0c;這樣可以在不適合read/write函數的情況下&#xff0c;使用地址&#xff08;指針&#xff09;完成I/O操作。具體實現通過內核指定一…

redis源碼剖析(十四)—— dump.rdb文件分析工具

分析rdb文件的工具 安裝 git clone https://github.com/sripathikrishnan/redis-rdb-tools.git sudo pip install --upgrade pip sudo pip install python-lzf分析以n開頭的key rdb --command justkeyvals --key "n*" /home/kou/redis_tar/redis-3.0-annotated/s…

linux操作系統之信號

&#xff08;1&#xff09;信號的概念 信號的特點&#xff1a;簡單&#xff0c;不能攜帶大量信息&#xff0c;滿足某種特定條件才觸發。 信號的機制&#xff1b;“軟中斷”&#xff0c;通過軟件方式實現&#xff0c;具有很強的延時性。每個進程收到的信號&#xff0c;都由內核負…

redis源碼學習筆記目錄

Redis源碼分析&#xff08;零&#xff09;學習路徑筆記 Redis源碼分析&#xff08;一&#xff09;redis.c //redis-server.c Redis源碼分析&#xff08;二&#xff09;redis-cli.c Redis源碼剖析&#xff08;三&#xff09;——基礎數據結構 Redis源碼剖析&#xff08;四&…

linux操作系統信號捕捉函數之sigaction用法小結

&#xff08;1&#xff09;sigaction函數&#xff1a;注冊一個信號捕捉函數&#xff08;不參與捕捉信號&#xff0c;信號由內核捕捉&#xff09;&#xff0c;并修改原來的信號處理動作 &#xff08;2&#xff09;函數原型及頭文件 頭文件&#xff1a;#include<signal.h>…

redis源碼剖析(十五)——客戶端思維導圖整理

redis源碼剖析&#xff08;十五&#xff09;——客戶端執行邏輯結構整理 加載略慢

linux操作系統信號捕捉函數之回調函數小結

&#xff08;1&#xff09;signal 信號捕捉函數&#xff1a;注冊一個信號捕捉函數&#xff08;不參與捕捉&#xff0c;那是內核的事情&#xff09; 函數實現&#xff1a; typedef void(*sighandler_t)(int); //聲明了一個函數指針&#xff08;代表著一類函數&#xff1a;參…

Redis運維和開發學習筆記-全書思維導圖

Redis運維和開發學習筆記-全書思維導圖 圖片過大&#xff0c;無法上傳。 鏈接:https://pan.baidu.com/s/13pnEMBEdLgjZNOOEAuDvEQ 密碼:qhch

linux操作系統之競態條件(時序競態)

&#xff08;1&#xff09;時序競態&#xff1a;前后兩次運行同一個程序&#xff0c;出現的結果不同。 &#xff08;2&#xff09;pause函數&#xff1a;使用該函數會造成進程主動掛起&#xff0c;并等待信號喚醒&#xff0c;調用該系統調用的進程會處于阻塞狀態&#xff08;主…

linux操作系統之全局異步IO及可重入/不可重入函數

&#xff08;1&#xff09;全局變量異步I/O實現父子進程交替數數 1&#xff09;信號捕捉函數 2&#xff09;main函數實現信號交替 3&#xff09;程序實現 1》創建子進程&#xff0c;父進程等待1s&#xff0c;等待子進程完成捕捉函數注冊&#xff08;捕捉信號SIGUSR1&#xff09…

RDB和AOF速度測試

同一臺機器測試 Redis3.2 Redis5.0.7 Linux python 3.10.0-693.11.1.el7.x86_64 #1 SMP Mon Dec 4 23:52:40 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux rdb測試步驟 1. 修改redis.conf配置文件 開啟rdb(測試aof時&#xff0c;注釋掉rdb&#xff0c;并重啟redis) # save &quo…