Linux程序设计笔记 第1章linux程序设计

字体==楷体

使用的linux发行版中gentoo发行版,使用之前使用过debian,mini,unbuntu后来看到一篇介绍linux发行版的文章http://tieba.baidu.com/p/1180067796  和决定使用linux一样使用gentoo,在10天后成功的安装失败,之后回到学校放暑假回到家中重新安装用了3天成功,期间在贴吧和邮件组提出无数个问题,感谢帮助我的人,为了补充linux知识,在handsoul大牛的引导下开始学习《linux程序设计》,我也是一个菜鸟目前只有C的基础,希望3年后或更久我也能成为黑阔大牛

 1.2.1 linux程序

linux其实只是指一个linux内核,现在的linux系统应该叫做gnu/linux操作系统。
gnu开源操作系统计划,gnu内核gnu hurd,一直没有开发出1.0的官方正式版。
这个庞大的微内核计划还在开发中。 http://www.gnu.org/software/hurd/

linux应用程序表现为两种特殊类型的文件:可执行文件和脚本文件。

可执行文件是计算机可直接运行的文件,相当于windows的.exe文件。

脚本文件是一组指令的集合,这些指令将由另一个程序(即)解释器来执行,它们相当于windows的bat文件,cmd文件或解释执行的BASIC程序。

linux并不要求它们有特殊的文件名或扩展名,文件系统属性用来指明一个文件是否为可执行的程序。

1.2.3  C语言编译器

  hello程序很可能在你的本地目录

  如果PATH变量包含指向你的本地目录的条目,shell就找不到hello程序。

  如果PATH变量中包含的其中一个目录有另一个hello程序,shell就会执行那个程序。如果PATH中这样的目录出现在你的   本地目录之前,就会发生这种情况。

  为了避免这种潜在问题,可以在程序名前加./,它特别指shell去执行当前目录下,给定的名称的程序。符号.代表当前目     录。

  如果没用 -o name 告诉编译器可执行程序的名字。编译器就会把程序放在名为a.out的文件中。(a.out即汇编输出)

1.2.4 开发系统导引

1、应用程序

   系统为正常运行(感觉比原文的系统使用好)提供的程序包括用于程序开发的工具都可在目录 /usr/bin

   某个特定的主机或本地网络添加的程序通常可在目录 /usr/local/bin或/opt中

   系统管理员喜欢用/opt和/usr/local目录

   这样的好处是在需要升级操作系统时就可以看出来,因为只有/opt和/usr/local 里的内容需要保存

   最好系统级的应用程序,将它放在/usr/local目录中来运行访问。

   开发和个人用的应用程序,最好在本地目录中使用一个文件夹来存放它。

    GCC在/usr/bin或/usr/local/bin    但它会从其他位置运行的应用程序,其他位置在/usr/lib/gcc

    我使用的gentoo AMD64内核版本3.3.8  当前最新版本的稳定内核,在/usr/bin中找到了gcc,/usr/local/bin下空的没有任何东西,/usr/lib/gcc这个位置有的 

2、头文件

     对C语言来说头文件位置几乎总是位于/usr/include   //在/usr/include中找到stido.h,printf.h
     依赖于特定linux版本的头文件通常可在目录/usr/include/sys和/usr/include/linux
      
      可以使用-I标志来包含保存在子目录或非标准位置的头文件 //-I为大写i

       $gcc -I/usr/openwin/include fred.c

       它指示编译器不仅在标准位置也在指定的目录中查找程序fred.c中包含的头文件

       用grep命令来搜索特定定义和函数原型的头文件是很方便的,假设想知道用于从程序中返回退出状态的#define定义的名字,你只需切换到/usr/include目录下,然后

        # grep EXIT_ *.h

        ............

        stdlib.h:#define EXIT_FAILURE 1 /* Failing exit status.  */

        stdlib.h:#define EXIT_SUCCESS 0 /* Successful exit status.  */

上面的grep命令在当前目录下的所有以.h结尾的文件中搜索字符串EXIT_。在本例中,它在stdlib.h文件中找到你需要的定义。

 


        


你可能感兴趣的:(linux,笔记,程序设计)