![](https://img-blog.csdnimg.cn/20201014180756913.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
系统编程
weixin_43665107
这个作者很懒,什么都没留下…
展开
-
文件—系统调用
系统调用:内核提供的函数让用户能访问内核数据。 用户区和内核区不能直接访问,需要借助系统调用。(开销大) 文件描述符: 0 标准输出 1标准输出 2标准错误 文件指针: stdin stdout stderr 一.打开文件 1.加头文件:man 2 open #include <sys/types.h> #include <sys/stat.h> #include &l...原创 2018-12-20 19:55:21 · 334 阅读 · 0 评论 -
文件:标准库函数
一.I/O缓冲 C标准库提供了操作文件的标准I/O函数库,与系统调用相比,主要差别是实现了一个跨平台的用户态缓冲的解决方案。 1. I/O缓冲的解释(以printf()为例) printf函数向标准输出写入多个字符,所写入的字符被放在一个用户态的缓冲区中,直到碰到一个换行符,系统才调用write函数将缓冲区中的数据写入标准输出,也就是说,在换行符之前写入的字符并不会立即出现在控制台屏幕上。 系统调...原创 2018-12-21 21:20:36 · 202 阅读 · 0 评论 -
线程与进程的区别与联系
一.进程 1.基本概念 进程是一个具有一定独立功能的程序的一次运行活动,是一个程序正在执行的实例。 进程是表示资源分配的基本单位,又是调度运行的基本单位。 例如,用户运行自己的程序,系统就创建一个进程,并为它分配资源,包括各种表格、内存空间、磁盘空间、I/O设备等。然后,把该进程放人进程的就绪队列。进程调度程序选中它,为它分配CPU以及其它有关资源,该进程才真正运行。所以,进程是系统中的并发执行的...原创 2018-12-27 20:44:35 · 97 阅读 · 1 评论 -
链表与文件间的导入导出
一.将链表里面的内容导入到文件中 判断链表里面的内容是否为空 void judge_Linklist(List *ls, int fd) { if(NULL == ls) return ; if(ls->head->next == NULL) { return ; } write_file(ls, fd); //return TRUE; } 将链表里...原创 2018-12-22 20:22:17 · 1560 阅读 · 0 评论 -
线程
一.多线程程序设计 1.线程的创建:pthread_create int pthread_create(pthread_t *thread, pthread_attr_t *attr, void *(*start_routine)(void *), void *arg); 第一个参数:创建的线程的id,是一个传出参数 第二个参数:线程属性 —> 一般为NULL(控制线程的大小) 第三个参...原创 2018-12-28 19:44:29 · 73 阅读 · 0 评论 -
进程控制
一.获取ID 获取本进程ID:pid_t getpid(void) 获取父进程ID:pid_t getppid(void) int main() { printf ("当前进程id: %d\n", getpid()); printf ("父进程 id: %d\n", getppid()); while(1); return 0; } 二.进程创建 创建子进程:pid_t for...原创 2018-12-24 19:49:27 · 84 阅读 · 0 评论 -
多路复用
#include <stdio.h> #include <sys/types.h> #include <sys/socket.h> #include <string.h> #include <unistd.h> #include <arpa/inet.h> #include <stdlib.h> #include原创 2019-01-04 21:32:27 · 112 阅读 · 0 评论 -
进程间通信
一.管道通信 管道:单向的,先进先出,数据只读一次;一端用来读,一端用来写,写端不能读,读端不能写。 管道包括:无名管道和有名管道 1.无名管道:用于父进程和子进程间的通信 (1)创建管道:pipe()函数 int pipe(int pipefd[2]); 创建两个文件描述符:filedis[0]用于读管道,filedis[1]用于写管道 管道是由内核创建的,独立于进程之外。 完成数据交换:一...原创 2018-12-25 20:51:43 · 109 阅读 · 0 评论 -
网络编程
一.网络模型 二.TCP/UDP 协议 ===> 传输层 TCP(传输控制协议):为用于程序提供可靠的通信连接,适合一次传输大批数据的情况,并适用要求得到相应的应用程序。(打电话) UDP(用户数据报协议):提供无连接通信,且不对传送包进行可靠的保证,适合一次传输少量数据(写信)。 1.TCP协议 是TCP/IP体系中面向连接的传输层协议,它提供全双工和可靠交付的服务,采用许多...原创 2019-01-02 20:06:24 · 104 阅读 · 0 评论