
系统编程
如我1220
这个作者很懒,什么都没留下…
展开
-
多线程<一>
创建多线程,开辟相应大的数组空间用来存储他的线程id,变量等;#include "head.h" #define INS 100struct arg{ int age; char name[20];};void *print(void *arr) { struct arg aarg; aarg = *(struct arg*)arr; // printf("Hello world\n"); printf("%s is %d old!\n", aarg原创 2021-04-12 19:18:06 · 104 阅读 · 0 评论 -
内存映射,信号量,消息队列
文件与内存映射将普通文件映射到内存中, 普通文件被映射到进程地址空间后,进程可以像访问普通内存一样对文件进行访问,不必再调用read 或 write 函数; t//mmap#include <sys/mman.h> void *mmap(void *addr, size_t length, int prot, int flags, int fd, off_t offset); int munmap(void *addr, size_t length)原创 2021-04-11 15:20:52 · 174 阅读 · 0 评论 -
管道与共享内存
共享内存管道FILE *popen(const char *command, const char *type);通过创建管道,创建子进程来打开一个进程,管道被定义为单向管道后,type 只能指定可读或可写;cmd 被传递给 /bin/sh;返回值:成功:返回一个指针指向文件流的指针去写或读管道,如果 fork 或 pipe 调用失败,将返回 NULL;int pclose(FILE *stream);fgetschar *fgets(char *s, int size, FILE *str原创 2021-04-09 18:08:32 · 664 阅读 · 0 评论 -
条件变量
条件变量原创 2021-04-06 00:19:37 · 143 阅读 · 0 评论 -
共享内存
shmget得到一个共享内存标识符或创建一个共享内存对象并返回共享内存标识符#include <sys/ipc.h>#include <sys/shm.h> int shmget(key_t key, size_t size, int shmflg);RETURN VALUEOn success, a valid shared memory identifier is returned.On error, -1 is returned, and errno原创 2021-04-04 23:56:50 · 71 阅读 · 0 评论 -
进程管理与进程体系
fork 与 exec父进程调用fork 后,将产生子进程,子进程将继承父进程的部分资源,在子进程调用exec 后,子进程中的代码将被替换为exec所要执行的代码段,原子进程中exec()后面的代码将不再执行;进程包含的资源:内核资源: 文件, 用户, 组, 线程,二进制image, 上下文, 虚拟内存;...原创 2021-03-28 00:01:00 · 80 阅读 · 0 评论 -
open相关函数练习---实现cp 功能
#include "head.h"int main(int argc, char **argv) { int fd, fd2; if((fd = open(argv[1], O_RDONLY)) < 0) { fprintf(stderr, "Error!\n"); perror("open"); exit(1); } if ((fd2 = open(argv[2], O_CREAT| O_RDWR, 0666)) &原创 2021-03-21 11:18:31 · 187 阅读 · 0 评论 -
getopt函数,命令行解析
getopt函数函数功能:用来解析命令行参数,参数argc和argv分别代表参数个数和内容,跟main()函数里的命令行参数一样函数所在头文件:#include<unistd.h>函数原型定义:int getopt(int argc, char* const argv[ ], const char *optstring )参数optstring: 为选项字符串,告知getopt可以处理那个选项以及哪个选项需要参数,如果选项字符串里的字母后接着冒号:“:”,则表示还有相关的参数,全原创 2021-03-20 14:32:59 · 161 阅读 · 0 评论