^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.mzph.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…