免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
楼主: pzz68
打印 上一主题 下一主题

[C] 怎么判断是Windows/dos文本文件还是Linux/Unix文本文件? [复制链接]

论坛徽章:
0
11 [报告]
发表于 2008-03-19 13:23 |只看该作者
UNIX的格式和streamI/O有关系.

stream文件没有"回车"的问题. 也就是说,字符流一个接一个,不会回缩,只能前进.
'\n"是前进, '\r'是回缩.

因此,严格说,带有\r 的不是文本文件. curses库对付的就不是文本.

不是所有ASCII码组成的文件都是文本文件.

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
12 [报告]
发表于 2008-03-19 13:23 |只看该作者

回复 #10 flw 的帖子

受教。。。:wink: :wink:

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
13 [报告]
发表于 2008-03-19 13:25 |只看该作者
原帖由 思一克 于 2008-3-19 13:23 发表
UNIX的格式和streamI/O有关系.

stream文件没有"回车"的问题. 也就是说,字符流一个接一个,不会回缩,只能前进.
'\n"是前进, '\r'是回缩.

因此,严格说,带有\r 的不是文本文件. curses库对付的就不是文本.
...

这是 unix 的理念,但你不能说 windows 就是学 unix 的。
再者,就算是学了,也不能说人家学的不好。
至于 / 和 \,长的像根棍的标点符号就那么几个,就算是不用 \ 而用 |,你也一样会说是学 unix 的——谁叫 unix 早呢?
难不成用 % 和 @?
呵呵。

[ 本帖最后由 flw 于 2008-3-19 13:27 编辑 ]

论坛徽章:
0
14 [报告]
发表于 2008-03-19 13:25 |只看该作者
还有的系统每行结尾\n \r都没有的. 而是在前面有一个2个字节的长度.

论坛徽章:
0
15 [报告]
发表于 2008-03-19 13:27 |只看该作者
学是没有问题的. 学也是真的.

你从DOS的一开始版本看, 就知道DOS学的多么多, 有时候多么好玩.

学是没有办法的. 因为UNIX几乎被作为OS接口的标准. 许多后来的系统要向它看齐. 许多原来的系统修改或增加了和UNIX类似的接口.

原帖由 flw 于 2008-3-19 13:25 发表

这是 unix 的理念,但你不能说 windows 就是学 unix 的。
再者,就算是学了,也不能说人家学的不好。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
16 [报告]
发表于 2008-03-19 13:35 |只看该作者
总而言之,我是不希望看到思一克这样的 C 版名宿也流俗与平台之争,
我一再跟我周围的人讲,抵制 windows/ms,是要吃大亏的,过分信仰 linux 也是不明智的。
健康的 OS 市场,需要竞争。这样才对各方面都有好处。
在过去的许多年里,大家都拿 windows 的蓝屏开玩笑,
但是从 2000/XP 开始,蓝屏基本上已经看不到了。
最新的 windows 2008 我试用了一下,非常不错。
在许多方面,ms 也一直在努力,
C# 的性能已经超过了 Java,而且也在做跨平台的标准(Mono),
PowerShell 也非常值得期待。

论坛徽章:
0
17 [报告]
发表于 2008-03-19 13:36 |只看该作者
同意你. 不争论这些了. 知道意思就行了.

原帖由 flw 于 2008-3-19 13:35 发表
总而言之,我是不希望看到思一克这样的 C 版名宿也流俗与平台之争,
我一再跟我周围的人讲,抵制 windows/ms,是要吃大亏的,过分信仰 linux 也是不明智的。
健康的 OS 市场,需要竞争。这样才对各方面都有好 ...

论坛徽章:
0
18 [报告]
发表于 2008-03-19 13:37 |只看该作者
我觉得MS的CRLF格式在逻辑上是讲不通的!且看下面例证:

bool    b1;
bool    b2;

如果任何时候 b1都与 b2相等,即同时为FALSE或同时为TRUE。

现在有这个 if 语句:
if(b1)
{
    ... ...
}

而MS按照CRLF,该次却这样写了:
if(b1 & b2)
{
    ... ...
}

不免有脱裤子放屁之嫌!!!!!!!!!!!!

论坛徽章:
0
19 [报告]
发表于 2008-03-19 13:37 |只看该作者
原帖由 flw 于 2008-3-18 21:25 发表

这是 unix 的理念,但你不能说 windows 就是学 unix 的。
再者,就算是学了,也不能说人家学的不好。
至于 / 和 \,长的像根棍的标点符号就那么几个,就算是不用 \ 而用 |,你也一样会说是学 unix 的——谁 ...

前几天看到文章说,dos不用'/'是因为老版本的dos命令中'/'被用做特殊用途了,好像是处理参数, xxx /h

论坛徽章:
0
20 [报告]
发表于 2008-03-19 13:38 |只看该作者
我觉得MS的CRLF格式在逻辑上是讲不通的!且看下面例证:

bool    b1;
bool    b2;

如果任何时候 b1都与 b2相等,即同时为FALSE或同时为TRUE。

现在有这个 if 语句:
if(b1)
{
    ... ...
}

而MS按照CRLF,该次却这样写了:
if(b1 & b2)
{
    ... ...
}

不免有脱裤子放屁之嫌!!!!!!!!!!!!

谁对此解释一下?

[ 本帖最后由 pzz68 于 2008-3-19 13:40 编辑 ]
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP