刚刚看完apue,但是要达到熟练运用书中的API,还是要多读多写代码。之前就比较好奇像linux中的ls、cat等基本命令的实现,在网上查得linux有个coreutils包专门实现这些基本的命令,详见coreutils介绍。
比如,对于我的ubuntu:
$ which ls
/bin/ls
$ dpkg -S /bin/ls
coreutils: /bin/ls
$ ls --version
ls (GNU coreutils) 8.28
Copyright (C) 2017 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>.
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Written by Richard M. Stallman and David MacKenzie.
从以上命令可以看出,我的ubuntu上安装的是coreutils-8.28。为了编译能够正常通过而不出现编译环境版本不兼容问题,先现在coreutils-8.28的源码包进行编译,下载地址:https://ftp.gnu.org/gnu/coreutils/,我下载的是coreutils-8.28.tar.xz
解压tar.xz文件:
$ xz -d coreutils-8.28.tar.xz
$ tar -xvf coreutils-8.28.tar
得到coreutils-8.28的源码文件夹,然后进行编译:
coreutils-8.28$ ./configure --prefix=/home/ubuntu/project/build
coreutils-8.28$ make
在coreutils-8.28/src下即可看到编译出的基本命令的可执行文件。
如果想自己单独编译某个命令,则把命令的源码移到一个单独的目录中,如下:
参考:
https://blog.csdn.net/endoresu/article/details/6967435
来源:CSDN
作者:guobaoteacher
链接:https://blog.csdn.net/u012159565/article/details/103743751