随笔分类 -  系统编程【笔记】

网络编程——I/O复用
摘要:int select( int nfds, fd_set FAR* readfds, fd_set * writefds, fd_set * exceptfds, const struct timeval * timeout); nfds:是一个整数值,是指集合中所有文件描述符的范围,即所有文件描述 阅读全文
posted @ 2018-07-08 17:23 IT8343 阅读(252) 评论(0) 推荐(0)
网络编程——UDP编程
摘要:一个简单的聊天代码:运行结果: 在这个程序之中,由于recvfrom函数拥塞函数,没有数据时会一直阻塞,所以客户端和服务器端只能通过一回一答的方式进行信息传递。严格的讲UDP没有明确的客户端和服务端,谁先进行数据传输,谁就是客户端,客户端也有可能是服务器端。 代码1: 代码2: 阅读全文
posted @ 2018-07-07 20:28 IT8343 阅读(275) 评论(0) 推荐(0)
I\O复用
摘要:客户端的代码和前面的一样,所以这里只给出服务器端的代码,根据代码进行理解: 阅读全文
posted @ 2018-07-06 23:58 IT8343 阅读(458) 评论(0) 推荐(0)
文件锁
摘要:运行结果: 阅读全文
posted @ 2018-07-04 21:42 IT8343 阅读(285) 评论(0) 推荐(0)
常用的头文件—— common.h
摘要:#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #includ... 阅读全文
posted @ 2018-07-04 19:17 IT8343 阅读(3635) 评论(0) 推荐(0)
网络编程2.0——多线程
摘要:代码1:服务器端: 代码2:客户端(主要是创建连接、发送数据) 阅读全文
posted @ 2018-07-04 19:14 IT8343 阅读(176) 评论(0) 推荐(0)
网络编程1.0
摘要:socket: 函数原型: int socket(int domain, int type, int protocol); 网络上的两个程序通过一个双向的通信连接实现数据的交换,这个连接的一端称为一个socket。 建立网络通信连接至少要一对端口号(socket)。socket本质是编程接口(API 阅读全文
posted @ 2018-07-03 23:35 IT8343 阅读(155) 评论(0) 推荐(0)
管道/FIFO
摘要:管道: 运行结果: FIFO(有名管道): 代码1:写文件程序 代码2:读文件程序: 运行结果:右边输入,左边输出 另一种FIFO(边读边写) 代码1: 代码2: 输出结果: 阅读全文
posted @ 2018-07-02 21:44 IT8343 阅读(252) 评论(0) 推荐(0)
进程间通信——信号
摘要:程序接受到信号以后,会做出相应的处理。代码如下: 结果如下: 以上程序检测到段错误,自动传递了11(SIGSEGV)信号给进程(捕捉信号),而alarm(int)是把SIGALRM信号传递给当前的进程,在某些时候,我们需要手动的给某个程序传递一些自定义的信号,此时该怎么处理呢? 结果:先运行程序,循 阅读全文
posted @ 2018-06-30 19:51 IT8343 阅读(167) 评论(0) 推荐(0)
Linux 线程编程3.0
摘要:结果如下: 阅读全文
posted @ 2018-06-29 09:37 IT8343 阅读(123) 评论(0) 推荐(0)
Linux 线程编程2.0——线程同步-互斥锁
摘要:当我们需要控制对共享资源的存取的时候,可以用一种简单的加锁的方法来控制。我们可以创建一个读/写程序,它们共用一个共享缓冲区,使用互斥锁来控制对缓冲区的存取。 函数 pthread_mutex_init()用来生成一个互斥锁。其函数原型如下: #include<pthread.h> int pthre 阅读全文
posted @ 2018-06-28 21:35 IT8343 阅读(305) 评论(0) 推荐(0)
Linux 线程编程1.0
摘要:在编译多线程程序的时候,需要连接libpthread文件: gcc pthread.c -o pthread -lpthread; 所有线程一律平等,没有父子关系,线程属于进程。 创建线程用 pthread_create()函数,其函数原型是: #include<pthread.h> int pth 阅读全文
posted @ 2018-06-28 20:39 IT8343 阅读(123) 评论(0) 推荐(0)
利用fork创建子进程
摘要:创建如图的进程: 结果如下: 创建如图的进程: 结果如下: 阅读全文
posted @ 2018-06-27 23:29 IT8343 阅读(1114) 评论(0) 推荐(0)
带参数的main函数以及execl函数的应用
摘要:恢复内容开始 代码1:(带参main函数) 运行: 代码2:excel函数: 运行程序: 在这种情况之下,不能够输出后面的“excle over”内容,无法得知进程是否完成,可以改进一下程序,利用fork()创建子进程: 结果为: 阅读全文
posted @ 2018-06-27 20:23 IT8343 阅读(352) 评论(0) 推荐(0)