《C程序设计新思维》一1.6 以源文件利用库(即使你的系统管理员不想叫你这么做)...

    xiaoxiao2024-07-11  117

    本节书摘来自异步社区《C程序设计新思维》一书中的第1章,第1.6节,作者 【美】Ben Klemens,更多章节内容可以访问云栖社区“异步社区”公众号查看

    1.6 以源文件利用库(即使你的系统管理员不想叫你这么做)

    你可能已经注意到了上一章节最后的关于为何你需要有root权限来安装POSIX系统到你的通常位置的警告。但是你在工作场所的共享机器里可能没有root权限,或者你被有特别的权限的某人控制。

    那你就必须走入地下,制作一个属于自己的root目录。

    第一步很简单,即创建这个目录:

    由于我已经有了一个~/tech目录,用来保存我所有的技术文档、手册和源代码,所以我建立的是~/tech/root目录。名字其实无所谓,但是我还是喜欢用~/root作为本书的示范目录。

    shell可以将波浪线替换为你个人主目录的完整路径,节省你很多打字的时间。POSIX标准只要求shell在一个词或者一个冒号(你需要做为一个路径类型的变量)的开始这么做,但是多数的shell扩展支持了词中间的波浪线。其他的程序,比如make,或许能也或许不能识别你个人主目录的波浪线。第二步,把新建的root系统添加到所有相关的路径上去。修改.bashrc或(其他shell的该配置文件)的PATH变量如下:

    如果把你的新的目录的bin子目录添加在你的原来的PATH前面,这个子目录就将被首先查找,并且你放在那里的任何程序都将被率先找到。那么,你就可以把标准共享目录中的任何程序的替代版本放在那里。

    手册

    我记得以前的确有印刷版本的手册,不过现在它是在man命令中的。例如,用man strtok来阅读关于strtok函数的内容,一般包括需要包含什么样的头文件、输入参数,以及它的基本用法的解释。手册文档倾向于简洁明了,有时候缺乏示例,并且假设读者已经有了一些这个函数的基本用法的知识。如果你需要一个更加基本的教程,可以用常用的搜索引擎在Internet上找到几个(对于strtok这个例子,你可以参见“9.2 strtok的颂歌”)。GNU C库的手册,也很容易在网上找到,对初学者而言是非常易懂的。

    如果你无法想起要找的函数的名字,每个手册页都有一个一行长的简述,man -k searchterm将搜索那些简述。许多系统还提供apropos命令,它和man–k类似但是多了一些别的功能。为了进一步的利用,我经常把apropos命令的输出用管道导出给grep命令。手册分为几段。第1段是命令行命令,第3段是库函数。如果你的系统有一个命令行程序叫做printf,那么man printf将展示这个命令的文档,而man 3 printf将展示C库函数中的printf的文档。如果想了解更多关于man命令的用法(比如各段的完整列表),可以使用man man。你的文本编辑器或者IDE可能有某种快速调用手册页的方法。例如,vi的使用者可以把鼠标放在一个词语上,用K键来打来这个词语的手册页。对于那些你想链接的C程序库,请注意在前面的makefile中的新搜索路径:

    现在你已经有了一个本地的root目录,你也可以在别的系统上使用它,比如Java的CLASSPATH。

    最后一步是在新的root目录上安装程序。如果你有源代码并使用Autotools,你只需要在合适的位置添--prefix=$HOME/root:

    现在我们不需要sudo来执行做安装步骤,因为所有的工作都在你的自治领地里。

    这些程序和库都在你的主目录中,所使用的许可权不会超出你所具有的范围,系统管理员不能抱怨你做了任何危害他人的事情。如果你的系统管理员还是有所抱怨,那么,可悲的是,你也许到了该和他分手的时候了。

    相关资源:敏捷开发V1.0.pptx
    最新回复(0)