
UNIX编程
五道口纳什
wx公众号/B站:五道口纳什
展开
-
UNIX 环境高级编程(二)—— linux共享库,/etc/ld.so.conf 及 ld.so.conf.d/libc.conf
1. Linux 共享库(/etc/ld.so.conf)这个文件记录了编译时使用的动态链接库的路径。默认情况下,编译器只会使用 (1)/lib、 (2)/usr/lib 这两个目录下的库文件。原创 2016-06-03 09:12:04 · 2517 阅读 · 0 评论 -
UNIX 环境高级编程(九)—— fork 函数与 I/O 函数
#include "apue.h" int g_var = 6;char buf[] = "a write to stdout\n";int main(void){ int m_var = 0; pid_t pid; if (write(STDOUT_FILENO, buf, sizeof(buf)-1) != sizeof(buf)-1) err_sys("wr原创 2016-06-06 21:34:17 · 964 阅读 · 0 评论 -
UNIX 环境高级编程(八)—— fork 函数
一个现有的进程可以调用 fork 函数创建一个新进程。#include <uinstd.h> pid_t fork(void); // 返回值: 子进程返回 0; 父进程返回子进程 id; 若出错,返回 -1由 fork 创建的新进程被称为子进程(child process)。fo原创 2016-06-06 11:35:27 · 1081 阅读 · 0 评论 -
UNIX 环境高级编程(七)—— 进程标识
1. 进程 ID (1)进程 ID 0:交换进程,swapper,调度进程 (2)进程 ID 1:init 进程; (3)进程 ID 2:页守护进程(page daemon),负责支持虚拟存储器系统的分页操作; 2. 其他进程标识#include <uinstd.h>pid_t getpid(void); 返回值:调用进程的进程 ID pid_t getppid(void)原创 2016-06-06 10:34:15 · 881 阅读 · 0 评论 -
/usr/bin/ld: cannot find -l*
1. 问题通常在软件编译(make)时出现:usr/bin/ld: cannot find -lxxx的错误,主要的原因是库文件并没有导入的 ld 检索目录中。 2. 解决方式2.0 首先,确认库文件是否存在比如-l123, 在/usr/lib, /usr/local/lib,或者其他自定义的lib下有无lib123.so, 2.1 如果只是存在lib123.so.1,那么可以通过:ln -sv l原创 2016-06-03 21:49:42 · 1147 阅读 · 0 评论 -
UNIX 环境高级编程(六)—— 程序和进程
1. 基本概念1.1 程序(program) 程序是一个存储在磁盘上某个目录中的可执行文件。 内核使用 exec 函数(七个 exec 函数之一),将程序读入内存。 1.2 进程(process) 程序的可执行实例被称为进程(process); 某些操作系统用任务(task)表示正在执行的程序。 UNIX 系统确保每个进程都有一个唯一的数字标识符,称为进程 ID(process ID) 进程 ID原创 2016-06-03 15:10:03 · 1006 阅读 · 0 评论 -
UNIX 环境高级编程(五)—— unistd.h
1. POSIXPOSIX 表示可移植操作系统接口(Portable Operating System Interface ,缩写为 POSIX ),POSIX 标准定义了操作系统应该为应用程序提供的接口标准,是 IEEE 为要在各种 UNIX 操作系统上运行的软件而定义的一系列 API 标准的总称,其正式称呼为 IEEE 1003,而国际标准名称为ISO/IEC 9945。2. unistd.h原创 2016-06-03 12:06:52 · 1268 阅读 · 0 评论 -
UNIX 环境高级编程(四)—— dirent.h
dirent.h 是 POSIX.1 标准定义的 unix 类目录操作的头文件,包含了许多 UNIX 系统服务的函数原型,例如 opendir 函数、readdir 函数。1. 基本函数接口1.1 opendirDIR *opendir(const char *pathname);返回值: 若成功则返回指针; 若出错则返回NULL; 1.2 readdirstruct dirent *readdir原创 2016-06-03 11:42:49 · 1120 阅读 · 2 评论 -
UNIX 环境高级编程(一) apue.h 文件与apue.3e的安装
apue:Advanced Programming in the UNIX Environment, 本文关注第三版(3e)1. apue.3e 的安装第三版较之第二版有了很大改变,安装更为简单。 (1)下载源代码:http://http//www.apuebook.com/code3e.html (2)解压:tar -zxvf (3)cd apue.3e/ (4)make在这个过程中,你会看到最原创 2016-06-03 08:58:14 · 2647 阅读 · 0 评论 -
UNIX环境高级编程(三)—— 静态链接库与动态链接库
动态链接库一般不开放源码,需要建工程才能使用(其中提供的接口和 API); 0. .a/.o/.so What are .a and .so files? .o 就相当于 windows 里的 obj 文件 ,一个 .c 或 .cpp 文件对应一个 .o 文件 .a 是多个 .o 合在一起,用于静态连接 ,即STATIC mode,多个.a可以链接生成一个exe的可执行文件 -a:原创 2016-06-03 09:30:07 · 2077 阅读 · 0 评论