摘要:
在C语言中,修饰符extern用在变量或者函数的声明前,用来说明此变量/函数是在别处定义的,要在此处引用。 1.extern修饰变量的声明。举例来说,如果文件a.c需要引用b.c中变量int v,就可以在a.c中声明extern int v,然后就可以引用变量v。这里需要注意的是,被引用的变量v的链接属性必须是外链接的(external)的,也就是说a.c要引用到v,不只是取决于在a.c中声明extern int v,还取决于变量v本身是能够被引用到的,这涉及到C语言变量的作用域。 2.extern修饰函数声明。从本质上来讲,变量和函数没有区别,函数名是指向函数二进制开头处的指针。如果... 阅读全文
摘要:
从小就在课本中学过,“自信是成功的第一秘诀”,***总理也曾经说过,信心比黄金更重要,但是作为程序员的我们却有时显得信心不足,我写下程序员缺乏自信的表现,看看你有没有,也让自己重拾信心做好准备迎接新的一年。 临床表现 1. 大公司的招聘不敢去面试,甚至连简历都不敢投; 2. 一个程序任务拿到手还没有做,就先打退堂鼓; 3. 面对一个程序迟迟不敢动手; 4. 想编一个程序,总是先在无关紧要的地方打转,不能快速的切入程序中心。 看到一个不错的方法拿来借鉴:把那些让你不自信的理由写下来。记住,一定要写在纸上,而不是只在自己心里想。 按照如下步骤进行: 1. 把那些不自信的理由逐... 阅读全文
摘要:
编写生产质量级别的代码似乎是一个明摆着的目标,但计算机行业却费了不少时日才弄明白正确的实现之道。例如,Windows95曾经有个Bug会让操作系统在连续运行49.7天之后挂起—但是该Bug花了4年时间才暴露,有Bug这件事本身并不特别让人觉得惊讶,时间之所以这么长是因为其他Bug在不到49.7天的时候就让Windows95崩溃了。 通往高质量代码的道路有两条,你可以二选一:一开始就内置质量,或者事后再敲打它。前者需要你在日复一日的编码中遵循众多戒律;后者则要求大量测试,到头来,在自以为完工之后,你会发现还有很多工作要做。 事后敲打(beat-it-in-afterward)是常见的工作... 阅读全文
摘要:
与Unix一样,Linux环境中的文件具有特别重要的意义,因为它们为操作系统服务和设备提供了一个简单而一致的接口。在Linux中,一切(或几乎一切)都是文件。通常程序完全可以像使用文件那样使用磁盘文件、串行口、打印机和其他设备,不过也有一些例外情况,比如网络连接。但大多数情况下,只需要使用5个基本的函数——open、close、read、write和ioctl。1. 目录文件,除了本身包含的内容以外,它还会有一个名字和一些属性,即“管理信息”,包括文件的创建/修改日期及它的访问权限。这些属性被保存在文件的inode(节点)中,它是文件系统中的一个特殊的数据块,它同时还包含文件的长度和文件在.. 阅读全文
摘要:
1. grep命令介绍GREP是Global search Regular Expression and Print out the line的简称,即全面搜索正则表达式并把行打印出来。GREP是一种强大的文本搜索工具,它能使用正则表达式搜索文本,并把匹配的行打印出来,greap也是Linux中最广泛使用的命令之一。本文主要介绍grep命令,并简略介绍grep命令族中的其他命令用法。2. grep命令基本用法grap命令是支持正则表达式的一个多用途文本搜索工具,grep的一般格式为:grep [选项] [模式] [文件...]grep命令由选项、模式和文件三部分组成,它在一个或多个文件中搜索满 阅读全文
摘要:
Bash Shell本身不支持正则表达式,使用正则表达式的是Shell命令和工具,如grep, sed, awk等,但是,Bash Shell可以使用正则表达式中的一些元字符实现通配(Globbing)功能,通配是把一个包含通配符的非具体文件名扩展存储在计算机、服务器或网络上的一批具体文件名的过程。最常用的通配符包括正则表达式字符:?, *, [], {}, ^等。这些元字符在通配中的意义与正则表达式中的意义不完全一致,*符号不再表示其前面字符的重复,而是表示任意位的字符,?字符表示一个任意字符,^符号在通配中不代表行首,而是代表取反。下面以ls命令来举例通配符的使用:#列出以.awk结尾.. 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文
只有注册用户登录后才能阅读该文。 阅读全文