main1.c#include #include #define MY_FIFO "/tmp/myfifo"int main(void){ int ret; ret = mkfifo(MY_FIFO, 0777); if (ret == -1) { ... Read More
管道的缺点 管道只能在具有“亲戚”关系的进程之间通信。 即仅当管道由某个进程创建之后,在该进程的所有子孙进程之间,可通过该管道来通信。其他情况下的无此“亲戚”关系的进程不能使用管道通信。解决办法:使用命名管道什么是命名管道? 命名管道是一种特殊的文件, 命名管道以普通文件的形式(在... Read More
main1.c#include #include #include int main(void) { int fd[2]; int ret; char buff1[1024]; char buff2[1024]; ret = pipe(fd); ... Read More
管道 1 使用信号进行通信 进程之间使用“信号”进行通信的优缺点 优点:简单 缺点:传递的信息有限, 只能传递一个简单的“信号值”解决方案: 使用“管道”进行进程间通信。注: 进程间通信,简称“IPC” 2 什么是管道 IPC 有多种方式, 管道是IPC的最基本的方式.... Read More
main1.c#include #include int main(void){ while(1) { printf("work...\n"); sleep(3); } return 0;}main2.c#include #includ... Read More
创建两个子进程; 子进程1对文件mytest.txt进行写操作, 每5秒写入一次, 写入当时的时间。 子进程2对文件mytest.txt进行读操作, 每5秒中读一次, 读取并打印文件中所写入的最新时间。... Read More
main1.c#include #include int main(void){ char *buff; void *buff2; buff = malloc(1024); // ∏≥÷µ ±Ω¯––¡À¿‡–Õ◊™ªª ... Read More
内存管理什么是内存?内存是一种稀缺资源。Linux程序不允许直接访问物理内存,都通过虚拟内存的方式访问。 物理地址 虚拟地址Linux通过内核的”存储管理”,给用户提供了”虚拟内存”。 虚拟内存可以比实际的物理内存大。内存分配 1)简单的内存分配 使用malloc 以字节为单位... Read More
main.7#include #include int main(void){ system("ls -l"); printf("end!\n"); return 0;}main8.c#include #include #include int main(void... Read More
什么是进程程序的运行实例,就是“进程” 一个程序,同时执行多次,则产生多个不同的进程。程序是静态的 进程是动态的进程的结构 进程的组成:程序代码、数据、变量、文件描述符(表示已打开的文件)、环境等组成。每个进程有一个唯一的编号,称为”进程标识符”(PID) PID >= 2 PID... Read More
main1.c#include #include int main(void){ int i; char buff[] = "hello world\n"; write(1, buff, sizeof(buff)); write(2, buff, sizeo... Read More
文件的作用 linux中,一切皆文件(网络设备除外) 硬件设备也“是”文件,通过文件来使用设备 目录(文件夹)也是一种文件Linux的文件结构 了解各主要文件夹的作用系统调用和设备驱动程序之间的关系 应用层的open, close, read, write, ioctl与驱动程序的... Read More
01_类模板的定义.cpp#include#includeusing namespace std;templateclass A{ public: T t; A(){} A(const T &rt){ t = rt;} ~A(){}};int main... Read More