环境编程
归来仍是少年44
临渊羡鱼,不如退而结网。
展开
-
linux下mount()/umount()函数解析
本文转载自:https://blog.csdn.net/bingyu880101/article/details/50481507功能描述:mount挂上文件系统,umount执行相反的操作。头文件:#include <sys/mount.h>#include <errno.h> //errno的判断用法:int mount(const char *source, const char *target,const char *filesystemtype, unsign原创 2020-06-17 16:41:36 · 2434 阅读 · 0 评论 -
IO多路复用---epoll详细介绍及编程使用
引出epollepoll是在2.6内核中提出的,是之前的select和poll的增强版本。相对于select和poll来说,epoll更加灵活,没有描述符限制。epoll使用一个文件描述符管理多个描述符,将用户关系的文件描述符的事件存放到内核的一个事件表中,这样在用户空间和内核空间的copy只需一次。前两篇介绍了select和poll,它们的接口为:int select(int nfds, ...原创 2019-09-27 16:33:02 · 217 阅读 · 0 评论 -
IO多路复用--poll详细介绍与编程使用
引入poll相对于select来说,poll 也是在指定时间内论询一定数量的文件描述符,来测试其中是否有就绪的;比起select来,poll代码少,也方便。使用方式的区别也并不大。但是比select要灵活。 poll是一个系统调用,其内核入口函数为sys_poll,sys_poll几乎不做任何处理直接调用do_sys_poll,do_sys_poll的执行过程可以分为三个部分: 1,...原创 2019-09-27 11:46:33 · 411 阅读 · 0 评论 -
IO多路复用---select详细介绍及编程使用
IO多路复用机制服务器端编程经常需要构造高性能的IO模型,常见的IO模型有四种:(1)同步阻塞IO(Blocking IO):即传统的IO模型。eg.用户线程通过系统调用read发起IO读操作,由用户空间转到内核空间。内核等到数据包到达后,然后将接收的数据拷贝到用户空间,完成read操作。(2)同步非阻塞IO(Non-blocking IO):默认创建的socket都是阻塞的,非阻塞IO要...原创 2019-09-27 10:19:49 · 1243 阅读 · 0 评论 -
编程了解共享内存--mmap和shmget两种方式实现
mmapread.c#include <stdio.h>#include <sys/stat.h>#include <fcntl.h>#include <sys/mman.h>#include <unistd.h>#include <semaphore.h>#include <string.h>#i...原创 2019-09-07 16:50:39 · 1046 阅读 · 0 评论 -
Makefile将简单库函数代码文件分别编译成静态库和动态库并调用该库函数
arithmetic.h:声明函数2. arithmetic.c:定义函数3. main.c:测试函数4. makefile编写其中all主要生成静态库与动态库相对应的可执行文件,其依赖于静态库与动态库;也就是执行all之前先执行clean, static_lib, shared_lib操作。gcc –I. main.c -o APP_static –L. -larithme...原创 2019-09-05 11:46:17 · 663 阅读 · 0 评论 -
学习笔记:UNIX基础知识
前言因为之前学的不是很系统,现在打算重新开始系统的学并做好学习笔记。 所有操作系统都需要向它们运行的程序提供各种服务(如:执行新程序,打开文件,读文件,分配存储区,获得当前时间等。)UNIX体系结构严格意义上来说操作系统(内核)可以被定义为一种软件,其控制着计算机硬件资源并提供程序运行环境。在广义上,操作系统包括内核和其他一些软...原创 2018-06-12 21:45:24 · 330 阅读 · 0 评论 -
网络IPC:网络socket的学习
相关函数:socket、bind、listen、connect、accept、send、recv、close、shutdown其函数在Linux下的头文件为:#include<sys/socket.h> 套接字描述符 :套接字是通信端点的抽象,如使用文件描述符访问文件,应用程序用套接字描述符访问套接字。应用程序通过访问该函数创建的套接字实现对数据的发送和接收。套接字描述符在UNIX系...原创 2018-05-14 03:07:23 · 566 阅读 · 0 评论 -
Linux下编译制作动态库和静态库
Linux 支持两种类型的库,每一种库都有各自的优缺点。静态库包含在编译时静态绑定到一个程序的函数。动态库(也叫共享库)则不同,它是在加载应用程序时被加载的,而且它与应用程序是在运行时绑定的。Linux系统有几个重要的目录存放相应的函数库,如/lib, /usr/lib; 头文件放在/usr/include。原创 2018-01-19 20:15:56 · 311 阅读 · 0 评论 -
Linux下用Makefile制作动态库和静态库并编译生成可执行程序
Makefile 一个工程中的源文件不计其数,其按类型、功能、模块分别放在若干个目录中,makefile定义了一系列的规则来指定,哪些文件需要先编译,哪些文件需要后编译,哪些文件需要重新编译,甚至于进行更复杂的功能操作,因为 makefile就像一个Shell脚本一样,其中也可以执行操作系统的命令。在 Linux(unix )环境下使用GNU 的make工具能够比较容易的构建一个属原创 2018-01-19 21:31:14 · 7287 阅读 · 0 评论 -
写一个多线程程序在捕捉信号后放在后台运行(附多线程加锁的原因见解)
1.在思考这道题的时候首先考虑的是有没有引入数据,若引入数据必须要加锁。多线程编程加锁主要为了防止多个线程在同一时间访问同一资源导致导致访问的不是期望的数据。 例如: 线程thread1访问全局变量judge:`void *thread1(void *arg) { while(1) { sleep(1); judge++;原创 2018-01-26 06:43:17 · 784 阅读 · 0 评论