正斜杠与反斜杠的分析

news/2024/6/29 11:51:25 标签: windows, unix, 编译器, dos, web服务, 网络应用

http://blog.chinaunix.net/u1/45553/showart_2164526.html

 

正斜杠(左斜杠),符号是"/";反斜杠(右斜杠),符号是"/"。

 
  在Unix/Linux中,路径的分隔采用正斜杠"/",比如"/home/hutaow";而在Windows中,路径分隔采用反斜杠"/",比如"C:/Windows/System"。
 
  有时我们会看到这样的路径写法,"C://Windows//System",也就是用两个反斜杠来分隔路径,这种写法在网络应用或编程中 经常看到,事实上,上面这个路径可以用"C:/Windows/System"来代替,不会出错。但是如果写成了"C:/Windows /System",那就可能会出现各种奇怪的错误了。
  至于上述问题出现的原因,要从字符串解析这方面来分析。
  学过编程的人都应该知道,在C里面,输出字符串时,如果想输出一个换行,那就要加上'/n'这个标志,类似的,输出一个TAB,就加上' /t',也就是说,反斜杠("/")这个符号会把跟在它后面的字符结合起来转义成其它字符。根据这个原理,如果想输出双引号('"'),就需要输入' /"',这样才会将包含了双引号的字符串正确的写入内存中。那么如果想输入一个反斜杠呢?很简单,只要敲'//'就可以了。
 
  看到这里或许有些人已经看出眉目了,如果"C:/Windows/System"这个路径字符串交给C编译器编译,实际写入内存的字符串并没有包含反斜杠"/",甚至紧跟在反斜杠后面的字母也一起被转义成了其它的字符,再次调用的话势必会出问题。
  字符串解析不仅仅局限于C编译器,Java编译器、一些配置文件的解析、Web服务器等等,都会遇到对字符串进行解析的这个问题,由于传统 的Windows采用的是单个斜杠的路径分隔形式,导致在对文件路径进行解析的时候可能发生不必要的错误,所以就出现了用双反斜杠"//"分隔路径的形 式。不管解析引擎是否将反斜杠解析成转义字符,最终在内存中得到的都是"/",结果也就不会出问题了。
 
  由此也可以看出Windows或者说DOS在设计初期考虑不够周全,为了和Unix一些特征区别开来,将Unix中的正斜杠"/"分隔路径 方式改变成了反斜杠"/"。这样改变导致的一个问题就是在早期DOS命令行中,正常的文件名是不能包含空格的,如果包含了空格,会导致输入这样的文件名 时,命令解析无法将其和参数区分开。例如,想要进入"hutaow yuan"这个目录(在此先忽略8.3命名规则),直接输入"cd hutaow yuan",命令行会将其解析为进入"hutaow"目录,而后面的"yuan"做参数,这显然不是所期望的。
  而在Unix中,文件名如果包含空格,可以直接在空格前加上反斜杠"/"进行转义,从而很好的和命令参数区别出来(参数之间一般使用空格分 隔)。还是上面的例子,在Unix中,只要输入"cd hutaow/ yuan"(在yuan前面的空格前加上"/"),命令行会正确的辨认出"hutaow yuan"并进入这个目录。
  当然,现在Windows的后续版本已经使用其它方法(比如文件名用双引号括住)解决了空格问题。

http://www.niftyadmin.cn/n/1710953.html

相关文章

web前端期末大作业 html+css+javascript火影忍者网页设计实例 动漫网站制作

HTML实例网页代码, 本实例适合于初学HTML的同学。该实例里面有设置了css的样式设置,有div的样式格局,这个实例比较全面,有助于同学的学习,本文将介绍如何通过从头开始设计个人网站并将其转换为代码的过程来实践设计。 ⚽精彩专栏推荐&#x1…

同花顺_代码解析_技术指标_S

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 SADL SAR SDLH SG_NDB SG_XDT SG_评分 SGSMX SG量比 SI SKDJ SRDM SRMI STIX SADL 腾落指数 1.ADL与指数顶背离时,指数向下反转机会大; 2.ADL与指…

python匹配规则_RuleFinder 文本匹配工具是一个用于快速编写匹配规则,提取文本的工具...

文本匹配工具当前版本号:0.1.12update: 2020/6/12RuleFinder 文本匹配工具是一个用于快速编写匹配规则,提取文本的工具。本工具包括:类库,规则编辑器,批量提取器。RuleLib.py类库,可自行引用到项目中使用&a…

linux系统中的网关配置

问题: 当你发现在linux系统中连上wifi,但是上不了网时,需要更改网关配置 nm-connection-editor 进入网关管理界面,点击add,创建默认的以太网创建一个新的网关如下 我的ip是172.25.254.52 因为这里开启的wifi,所以搜寻…

BYTE WORD DWORD

一、定义 在VC6.0的Microsoft Visual Studio/VC98/Include/windef.h 里,定义了BYTE,WORD,DWORD typedef unsigned long DWORD; typedef unsigned char BYTE; typedef unsigned short WORD; 即: BYTE:8位 WORD: 16位 DWORD: 32位 二、Window 宏 1.L…

同花顺_代码解析_技术指标_T、U

本文通过对同花顺中现成代码进行解析,用以了解同花顺相关策略设计的思想 目录 TBR TRIX TRIXFS TWR UDL UOS TBR 新三价率 新三价率:100*上涨家数/(上涨家数下跌家数) MATBR1:TBR的M1日异同移动平均 MATBR2:TBR的M2日异同移动平均 1.指数仍处于下跌状态&a…

python django mysql_python——django使用mysql数据库(一)

之前已经写过如何创建一个django项目,现在我们已经有了一个小骷髅,要想这个web工程变成一个有血有肉的人,我们还需要做很多操作。现在就先来介绍如何在django中使用mysql数据库。前提:已经拥有一个django项目。已安装MySQLdb&…

linux系统接受不到wifi信号

问题: linux系统无法接受wifi信号 在linux系统右上角有连接wifi的图标,显示 hardware disabled 被硬件禁用解决办法: rfkill list all查看wifi管理删除硬件禁用 modprobe -r ideapad_laptop 如图 修改后发现&#xff0c…