Unix/Linux编程
文章平均质量分 71
water_3700348
这个作者很懒,什么都没留下…
展开
-
Unix/Linux下静态函数库和动态函数库的制作及使用
静态函数库和动态函数库的制作及使用 程序在运行过程中,往往需要调用外部写好的函数库。函数库分为两种:静态函数库和动态函数库。 静态函数库: 静态函数库通常以.a为后缀。在编译的过程中,将函数库的二进制代码与程序代码编译在一起,成为程序中的一个部分。使用静态函数库的优点是能够提高程序的兼容性和执行效率。但缺点也同样明显,假如多个程序都是使用同一套函数库,那么由于其函数库的代码是程序的一部分原创 2017-09-24 18:08:39 · 362 阅读 · 0 评论 -
Unix/Linux编程-文件和目录(一)
文件和目录(一) 4.1 4个stat函数 #include int stat(const char *pathname, struct stat *buf); int fstat(int fd, struct stat *buf); int lstat(const char *pathname, struct stat *buf); int fstat翻译 2017-10-17 14:05:33 · 186 阅读 · 0 评论 -
Unix/Linux编程-标准I/O库
标准I/O库 2.1 标准输入、标准输出和标准错误 进程中预定义了这3个流,可以自动地被进程调用。这些流引用的文件与文件描述符中的STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO所引用的相同。这3个标准I/O流通过预定义文件指针stdin、stdout和stderr加以引用,定义在头文件中。 2.2 打开标准I/O流 #i翻译 2017-10-16 08:58:32 · 269 阅读 · 0 评论 -
Unix/Linux编程-进程
进程 6.1 进程的开始与终止 6.1.1 mian函数 当内核执行C程序时,在调用main前先调用一个特殊的启动例程。可执行程序文件将此启动例程指定为程序的其实地址,这时由连接编辑器设置的,而连接编辑器则由C编译器调用。启动历程从内核取得命令行参数和环境变量值,然后为按上述方式调用main函数做好安排。 6.1.2 进程终止 有8种方式使进程终止,其中1-5为正常终止,翻译 2017-10-24 16:24:23 · 255 阅读 · 0 评论 -
Unix/Linux编程-时间和日期
时间和日期 有Unix内核提供的基本时间服务是计算自协调世界时(UTC)公元1970年1月1日00:00:00这一特定时间以来经过的秒数。以数据类型time_t表示。 #include time_t time(time_t *calptr); 返回值:成功返回时间值,出错返回-1 时间值作为函数值返回。如果参数非空,则时间值也存放在由calp翻译 2017-10-24 16:17:39 · 270 阅读 · 0 评论 -
Unix/Linux编程-系统调用I/O
系统调用I/O 1.1 文件描述符 对于内核而言,所有打开的文件都通过文件描述符引用。文件描述符是一个非负整数,当打开一个现有文件或创建一个新文件时,内核向进程返回一个文件描述符。在符合POSIX.1的应用程序中,幻数0,1,2虽然已经被标准化,但应当把它们替换成符号常量STDIN_FILENO,STDOUT_FILENO和STDERR_FILENO以提高可读性。这些常量都在头文件中。翻译 2017-10-13 10:24:45 · 395 阅读 · 0 评论 -
Unix/Linux编程-创建守护进程
创建守护进程 #include #include #include #include #include #include #include #include #include // 守护进程通过 syslog 输出的日志信息记录在 /var/log/syslog 日志文件中 // 创建守护进程 void daemonize(const char *cmd) {原创 2017-10-28 09:04:57 · 192 阅读 · 0 评论 -
GDB调试器与Core dump
GDB调试器与Core dump GDB是Unix/Linux下的一款基于命令行的程序调试工具,其简单的命令和强大的功能是众多开发者喜欢的理由,搭配Core dump对一个程序进行追踪则更能够大显身手。 前提条件: 一个程序如果想使用GDB调试,则需要在编译过程中加入调试信息。命令如下: gcc -d filename,c -o filename 使用 -g 参数,使得编译的程序带上原创 2017-09-21 22:41:15 · 301 阅读 · 0 评论 -
Unix/Linux进程在内存中的布局
Unix/Linux进程在内存中的布局 对于Linux操作系统之上的程序而言,其运行的进程所使用的内存地址都是虚拟地址,是MMU经过映射后的地址,我们这里所谈及的内存也是虚拟内存,而不是物理内存。 如何得到进程在内存中的布局: 我们将编写好的程序经过GCC编译得到一个可执行的文件,然后将其运行起来,通过查看进程的命令得到进程ID: ps -aux 在得到进程ID之后,我们通过pmap原创 2017-09-22 13:59:14 · 608 阅读 · 0 评论 -
Unix/Linux编程-文件和目录(二)
文件和目录(二) 4.8 更改文件实际用户ID和实际组ID #include int chown(const char *pathname, uid_t owner, gid_t group); int fchown(int fd, uid_t owner, gid_t group); int fchownat(int fd, const char *翻译 2017-10-17 14:18:39 · 208 阅读 · 0 评论