Linux编程学习二

C 语言看的差不多了,Linux编程从哪里入手呢?
首先我们要了解一些基本的知识,比如库文件,shell编程。
静态库文件:*.a
缺点:同一时间运行多个程序而它们又来自同一个函数库里的函数时,内存中就会存在同一函数的多份
拷贝,在程序文本中也存在多份拷贝,浪费内存和硬盘
创建一个自己的静态库文件:
  1).函数bill.c
     /* code */
    #include <stdio.h>
    void bill(char * arg)
    {
        printf("bill: you passed %s/n",arg);
    }
      /* code */
  编译:$ gcc -c bill.c  生成bill.o文件

  2).为函数建立头文件lib.h
     /* code */
     void bill(char *)
     /* code */

  3).写个程序program.c调用刚才的函数:
     /* code */
    #include "lib.h"
    int main()
    {
        bill("hello world");
        exit(0);
    }
      /* code */
      编译: $ gcc -c program.c
           $ gcc -o program program.c bill.o
       $ ./program
  4).用ar程序建立一个档案:
    $ ar crv libfoo.a bill.o
        为函数库建立一个内容表(在Berkley Unix中,在linux中并不必要):
    $ ranlib libfoo.a
    现在我们就可以用函数库了:
    $ gcc -o program program.c libfoo.a
    也可以通过-L来告诉编译器哪里能够找到它:
    $ gcc -o program program.c -L. -lfoo
    -L 告诉编译器在当前目录下查找函数库

共享库文件:*.so,*.sa
  它本身不包含函数的代码,而只保存共享代码的调用线索,共享代码在该程序运行的时候才加入到
其中。当编译好的程序被加载到内存中准备执行的时候,函数的调用线索被解析,程序校共享库发出
调用,共享库只在必要的时候才被加载到内存中。在内存中只保留一份共享库拷贝供许多程序使用。
    查看程序调用了哪些共享库:
    $ ldd 可执行程序名

shell编程我就不多介绍了,但它是基础中的基础,必要掌握。我觉得能看懂shell脚本就可以了。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值