Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux环境下创建静态库和动态库

Linux环境下创建静态库和动态库

我们通常把一些公用函数制作成函数库,供其它程序使用。函数库分为静态库和动态库两种。静态库在程序编译时会被连接到目标代码中,程序运行时将不再需要该静态库。动态库在程序编译时并不会被连接到目标代码中,而是在程序运行是才被载入,因此在程序运行时还需要动态库存在。本文主要通过举例来说明在Linux中如何创建静态库和动态库,以及使用它们。 在创建函数库前,我们先来准备举例用的源程序,并将函数库的源程序编译成.o文件。第1步:编辑得到举例的程序--hello.h、he...
Linux 平台下的GCC的编译及使用

Linux 平台下的GCC的编译及使用

编译:第一步、是进行预编译,使用-E参数可以让GCC在预处理结束后停止编译过程:gcc -E hello.c -o hello.i预处理的宏定义插入到hello.i中第二步、是将hello.i编译为目标代码,这可以通过使用-c参数来完成:gcc -c hello.i -o hello.o也可以通过源文件直接生成gcc -c hello.c第三步、是将生成的目标文件链接成可执行文件:gcc hello.o -o hello也可以通过源文件直接生成gcc -o...
Linux 下的编程语言awk 学习

Linux 下的编程语言awk 学习

awk 是Linux系统下的一个非常有用的用于处理文件和字符串的工具,他也提供内置函数,所以他也算是一门编程语言了。起类似作用的工具还有sed,grep等。这几天我会一直学习awk。这里我只讲awk的命令,不会涉及awk的脚本,其实两者道理是一样的。(1) awk 处理文件:命令方式 awk -f 域分隔符 "模式 {动作}" 文件名每次读取文件的一行,通过域分隔符将每行分隔成若干个域 ,分别用$1,$2, $3,...$9,&(10)...表示第...
不用重启就能为Linux Kernel打上补丁

不用重启就能为Linux Kernel打上补丁

Ksplice是一个有意思的开源项目,它允许系统管理员不用重启就能为Linux Kernel打上补丁,该项目已经引起了Linux 基金会的注意。Linux 基金会成员、顶尖的Kernel开发者Ted Ts’o认为 Ksplice软件能满足电信公司及其它不喜欢下线的公司的需要。Ksplice不要任何的Kernel修正,只有源码、配置文件和一个补丁。根据开发者、MIT毕业生Jeffrey Brian Arnold写的技术文档,Kernel采用GPL 2许可,已...
Linux文件许可值知识

Linux文件许可值知识

SET-GID和SET-UID是使应用的执行者拥有与应用拥有者一样的组和用户ID,比如ping应用,其owner是root,因为ping要使用保留端口,普通用户是不能使用的。为了大家都能使用ping,则设置ping的set-uid位,使执行ping的用户在ping这个应用内部都拥有root的权限。 UMASK是创建文件时的文件模式掩码。 粘滞位只对目录起作用,主要用在/tmp下,防止不同用户互相干扰。见下: If a directory is writab...
开始学习Linux编程之旅

开始学习Linux编程之旅

本科时候就开始对Linux感兴趣,但无可奈何计算机只有一台,又实在离不开QQ(现在的大学班级为何只把QQ当做信息发布平台?),那个鸟QQ,没有太多技术的鸟QQ,又是那么保守,不肯公开协议,又不开发Linux下的IM,生怕别人抢了自己的生意,典型的中国传统小农思想,大四时试下载了EVA和GAIM,都用不了,EVA的版本好像太低了,新的协议不支持,无奈之下又回到了Windows的老房子。也许这就是我至今还是菜鸟的其中一个原因吧(也为中国的软件表示悲哀,一个34...
使用busybox做一个小巧的Linux操作系统

使用busybox做一个小巧的Linux操作系统

1.基础知识一个操作系统可以简单的抽象为,引导程序+内核+文件系统。vmlinuz是Linux 内核的镜像文件,可以被引导程序加载,从而启动Linux系统。initrd的全称是boot loader initialized RAM disk,它是系统启动时所使用的根文件系统映像文件,这个文件系统中包含几个驱动模块,用来装载实际的根文件系统,比如一个IDE或SCSI硬盘的驱动模块,内核装入这个模块之后用它来驱动硬盘,挂接硬盘到ramdisk的某个子目录,然后...
uClinux操作系统下的shell

uClinux操作系统下的shell

uClinux操作系统是标准Linux的一个分支,是专门针对没有MMU(存储管理单元)的CPU而配制的操作系统,并且专为嵌入式系统做了许多小型化的工作。目前uClinux常用的应用程序库是mC-libc和mClibc。通过make menuconfig来配置uClinux时,可以看到,这里可供选择的Shell有:sash、minix -shell、nwsh、bash、Other。其中 sash对应的代码为uClinux-Samsung/user/sash,...
Linux环境下C编程初尝试

Linux环境下C编程初尝试

最近,为了在Linux下的C语言编程,自己装了n多个Linux系统,比如RedHat,Fedora,Ubuntu。还有就是买电脑时送的红旗Linux,看来我用过的Linux系统,还真的不少啊。关于装Linux系统,我想最好还是装虚拟机比较好,可以用vmware来装虚拟机,这样Windows和Linux两个系统可以同时使用,比如用window下载一些文件,然后可以很方便的放到Linux上去。再说了,刚开始你也不可能像熟悉Windows那样熟悉Linux,难道...
Linux内核态和用户态的研究分析

Linux内核态和用户态的研究分析

386及以上的CPU实现了4个特权级模式(WINDOWS只用到了其中两个)其中特权级0(Ring0)是留给操作系统代码,设备驱动程序代码使用的,它们工作于系统核心态;而特权极3(Ring3)则给普通的用户程序使用,它们工作在用户态。运 行于处理器核心态的代码不受任何的限制,可以自由地访问任何有效地址,进行直接端口访问。而运行于用户态的代码则要受到处理器的诸多检查,它们只能访问映 射其地址空间的页表项中规定的在用户态下可访问页面的虚拟地址,且只能对任务状态段...
Linux系统下带图形界面SVN客户端安装过程(Esvn & RapidSvn)

Linux系统下带图形界面SVN客户端安装过程(Esvn & RapidSvn)

左上角是SapidSvn 右下角是EsvnEsvn安装:近来来想在Fedora core下装个svn带图形界面的客户端来用用,找了半天资料发现最多人用的是esvn,除此外其他工具想找个好的下载源实在是难,但是esvn一大堆都是基于UB下的sudo apt-get install esvn的这种简易安装方式的。很少看到有人用源码安装的。由于个人水平不够吧Down了几个都没安装成功。最后想办法Down个src.rpm包,才安装成功。如果有朋友也遇到我这样的问题...
Linux C编程实现杀死所有进程编程实现

Linux C编程实现杀死所有进程编程实现

今天在Linux系统关机的时候发现系统的 KILL会首先杀死所有进程,由此想到自己编程实现,由于没有接触过内核,也不知道系统是怎么实现的,所以所述思路可能有些偏颇,还望高手指点.思路最重要:首先遍历/proc文件夹,取得所有进程的PID.然后一一KILL.编程实现:1 #include 2 #include 3 #include 4 #include 5 #include 6 #include 7 #include 8 #include 91011 int...
初入手Java配置环境变量感受Linux系统之奇妙

初入手Java配置环境变量感受Linux系统之奇妙

首先,在安装JDK在XP系统下,路经是C:Program FilesJavaJDK1.6.0,这时如果你打开命令提示符窗口(您可以在Windows 2000/XP的“开始”菜单中选择“运行”,输入“cmd”命令来打开命令符模式),键入C:>javac你会发现如下情况——"javac"不是内部或外部命令,也不是可运行的程序或批处理文件。虽然您知道JDK的工具程序是位于bin目录下,但您的操作系统并不知道如何找到这些工具程序。所以当您输入javac尝试执...
<< 1141 1142 1143 1144 1145 1146 1147 1148 1149 1150 >>