linux编程基本
Posted 梦想远航
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了linux编程基本相关的知识,希望对你有一定的参考价值。
库的使用
头文件:.h 里面的函数及变量的声明 比如#include <stdio.h> ,Linux下默认头文件的搜索路径
系统定义的头文件:
/usr/include
/usr/local/include
/usr/target/include (平台不同路径不同)
库文件:/lib64
c库函数
[email protected] c]# ls /lib64/libc.so.6
/lib64/libc.so.6
查看一个程序使用了哪些库
ldd 可执行程序路径
//wait.c代码 #include <sys/wait.h> #include <sys/types.h> #include <unistd.h> #include <stdio.h> #include <stdlib.h> void child(int delay){ sleep(delay); exit(0); } void parent(int *status){ wait(status); } main(){ pid_t pid; int status; printf("Before:%d\n",getpid()); pid=fork(); if(pid == 0){ child(10); } if(pid >0 ){ printf("pid =%d\n",getpid()); parent(&status); printf("status =%d\n",status); } }
[[email protected] c]# ldd ./wait
linux-vdso.so.1 => (0x00007ffebd1d2000)
libc.so.6 => /lib64/libc.so.6 (0x000000333a200000)
/lib64/ld-linux-x86-64.so.2 (0x0000003339e00000)
编译时默认链接c库,如果使用其它库编译时需要用-l
比如使用数学库
gcc -o m.c -lm -lc
系统限制
本身平台的类型:32位,64位
数据类型的限制:
位置根据机器
/usr/include/limits.h
/usr/lib/gcc/x86_64-redhat-linux/4.4.4/include/float.h
系统本身的限制
命令行:ulimit来修改和获取
编程时使用:
getrlimit来获取
setrlimit来设置
man getrlimit #include <sys/time.h> #include <sys/resource.h> int getrlimit(int resource, struct rlimit *rlim); int setrlimit(int resource, const struct rlimit *rlim); struct rlimit { rlim_t rlim_cur; /* Soft limit */ rlim_t rlim_max; /* Hard limit (ceiling for rlim_cur) */ }; resource 的一些值 RLIMIT_CORE:core文件的最大字节数. core文件是系统某个文件出现异常退出时,系统为其保存的上下文信息,在gdb调试时常需要用 RLIMIT_CPU:cpu时间最大值(秒) RLIMIT_DATA:一个进程数据段的最大字节数 RLIMIT_FSIZE:可创建文件的大小最大值 RLIMIT_NOFILE:每个进程可以打开的文件的个数 RLIMIT_STACK:进程栈空间的最大值,使系统不会自动的动态修改这个限制 RLIMIT_VMEM:虚拟地址空间的最大值 RLIMIT_AS:系统进程可用内存空间最大值
以上是关于linux编程基本的主要内容,如果未能解决你的问题,请参考以下文章