2:LinuxC学习
主要是介绍Linux下的接口
^_^ 小小码nong
Talk is cheap, Show me the code。
展开
-
Linux下的文件和文件夹
Linux下的文件和文件夹首先简单介绍一下Linux下的文件属性的结构体 struct stat{ mode_t st_mode; //属性类型 ino_t st_ino; //i节点s dev_t st_dev; //文件存储设备的编号 dev_t st_rdev; //特殊文件设备编号 n原创 2017-02-27 22:46:16 · 473 阅读 · 0 评论 -
Linux线程浅析[关于线程的清理,与进程的对比,以及线程的各个状态]
Linux线程浅析[线程资源回收]线程的清理和控制函数线程与进程对比线程的各种状态其实之前在看到进程的时候,子进程在死亡之后,其资源回收不了,这就导致了后台一直有个僵尸进程一直回收不了.那么在线程中呢?线程虽然是共享了其进程中的内存资源,但是其也有独立的栈等资源啊.那么线程在执行完毕之后它的资源能否进行有效回收呢??会不会有类似进程中的wait或者waitpid函数呢???答案当然是有的.线原创 2017-03-26 22:11:41 · 1177 阅读 · 0 评论 -
linux下进程的信号量
linux下进程的信号量信号:信号的基本概念信号与异常处理信号的处理方法信号的可靠性函数可重入性信号集信号屏蔽首先来介绍一下什么是信号,信号的基本概念:1:信号(signal)机制是Linux系统中最为古老的进程之间的通信机制,解决进程在正常运行过程中被中断的问题,导致进程的处理流程会发生变化 2:信号是软件中断 3:信号是异步事件a:不可预见b:信号有自己的名称和编号c:信原创 2017-03-16 23:47:04 · 3393 阅读 · 0 评论 -
Linux线程浅析[线程的同步和互斥之线程死锁,线程与信号的关系]
Linux线程浅析[线程的同步和互斥之线程死锁,线程与信号的关系]线程死锁线程与信号 记得以前在学习java线程的时候,也会接触死锁,当时不断强调锁千万不要不能去做嵌套,不然容易一个线程在执行的时候所需要的锁被别的线程持有了,而别的线程执行的时候,它的锁又被第一个线程持有,这种相互持有锁却释放不了的这样的一种情况 线程死锁原创 2017-04-04 22:51:55 · 1232 阅读 · 0 评论 -
Linux线程浅析[线程的同步和互斥之线程信号量]
Linux线程浅析[线程的同步和互斥之线程信号量]什么是线程信号量线程信号量的相关函数使用信号量来进行互斥和同步的问题 4. 什么是线程信号量 在之前有一篇博客讲了进程的信号量,singal函数,这个函数是用来捕获系统中某些信号的,而在线程中同样是有这样的一个信号两,这个信号量就是用来处理线程的同步互斥问题的. 信号量的本质是一个非负整数计数器,是共享资源的数目,通常被用来控制对共享资原创 2017-04-04 21:22:50 · 2324 阅读 · 0 评论 -
Linux系统之网络编程[基础概要]
Linux系统之网络编程[基础概要]网络的基本概念TCP/IP协议概述OSI和TCP/IP模型基本的TCP协议网络基础编程基本的UPD协议网络基础编程网络的高级编程网络的基本概念网络的目的: 目的: 1:使用远程资源 2:共享信息,程序和数据 3:分布式处理协议: 计算机网络中实现通信必须要有一定的约束,如对速率,传原创 2017-04-17 22:52:28 · 719 阅读 · 0 评论 -
Linux进程IPC浅析[进程间通信SystemV共享内存]
Linux进程IPC浅析[进程间通信SystemV共享内存]共享内存概念,概述共享内存的相关函数共享内存概念,概述:共享内存区域是被多个进程共享的一部分物理内存多个进程都可把该共享内存映射到自己的虚拟内存空间,所有用户空间的进程若要操作共享内存,都要将其映射到自己的虚拟内存空间中,通过映射的虚拟内存空间地址去操作共享内存,从而达到进程间的数据通信共享内存是进程间共享数据的一种最快的方法,一个进原创 2017-04-16 11:31:05 · 1948 阅读 · 3 评论 -
Linux进程IPC浅析[进程间通信SystemV进程的信号量和信号量集]
Linux进程IPC浅析[进程间通信SystemV进程的信号量和信号量集](对共享资源主要实现互斥同步效果) 1. 进程信号量概念 2. 进程信号量集进程信号量的概念本质上就是共享资源的数据(非负的计数器),用来控制对共享资源的访问 用于进程间的互斥和同步 每种共享资源对应一个信号量,为了便于大量共享资源的操作引入了信号量集,可以对所有信号量一次性操作,对信号量集中所有操作可以要求全原创 2017-04-16 14:27:26 · 779 阅读 · 0 评论 -
Linux网络编程之[Socket通信的常用函数简介]
Linux网络编程之[Socket通信]Socket通信的概念Socket相关函数Socket通信的概念Socket(套接字): 它本身是一种通讯机制,它包含了一整套调用接口和数据结构的定义,它给应用进程提供了使用如tcp/ip等网络协议通讯的手段 Linux中的网络编程通过socket接口实现,Socket既是一种特殊的IO,提供对应的文件描述符.一个完整的Socket都有一个(五元组)原创 2017-04-18 23:00:19 · 985 阅读 · 0 评论 -
Linux网络编程[UDP客户端服务器的编程模型]
Linux网络编程[UDP客户端服务器的编程模型]编程模型概述相关函数实例demo编程模型概述从一个图示开始: 从上述图示中我们都可以看到,UDP的传输相对来说比TCP传输的时候要简单很多,因为其不需要建立稳定连接,只是相互端口之间的发送,对于一些传输效率需求比较高的应用场景来说,是比较适合的,但是其在稳定性,可靠性上就有一定差异了相关函数发送数据:#include原创 2017-05-13 11:34:38 · 1744 阅读 · 0 评论 -
Linux网络编程之[基于socket通信的tcp协议的编程模型]
Linux网络编程之[基于socket通信的tcp协议的编程模型]原创 2017-04-23 14:10:00 · 781 阅读 · 0 评论 -
Linux网络编程[DNS解析原理,了解相关DNS解析的函数]
Linux网络编程[浅析DNS原理,了解相关DNS解析的函数]1.DNS解析的相关原理 2. 域名解析的相关函数###端口绑定, DNS解析的相关原理 先通过一张图示来展示一下什么是DNS:1:每一个域名都是与ip进行绑定的 2:浏览器在访问域名的时候,会自动解析出对应绑定的ip地址 3:整个解析过程涉及到域名解析与域名服务器在自己的本机怎么去进行域名和ip的绑定呢??原创 2017-05-14 22:39:02 · 3228 阅读 · 0 评论 -
Linux网络编程[网络中的广播]
Linux网络编程[网络中的广播]什么是广播网络中广播地址如何去进行广播发送和接收广播实例Demo什么是广播?85-95年,这个10年出生的年轻人,对广播都不会陌生的,因为在童年或者青少年时期,某个阶段是由收音机来陪伴的,那收音机利用的是什么原理呢??最简单的就是,需要调频,把收音机设置到某个FM下,这样我们就可以听到某个频率下的广播….所以结合实际中的案例.广播是什么??我个人的理解是:原创 2017-05-15 23:13:43 · 1856 阅读 · 0 评论 -
Linux网络编程[如何打造守护进程(daemon)]
Linux网络编程[如何打造守护进程(daemon)]守护进程的含义守护进程的相关编程步骤守护进程的出错处理打造一个我们自己的守护进程守护进程的含义守护进程(daemon)是运行在后台的一种特殊的进程.它独立于控制终端并且周期性的执行某种(特殊)任务,或者一直在等待某些事情的发生.它不需要用户输入就能够运行,并且能提供某种服务,不是对整个系统就是对某个用户的程序进行服务.linux系统的大原创 2017-05-16 23:28:31 · 2426 阅读 · 0 评论 -
C语言学习:非局部跳转setjmp.h中的几个重要函数
C语言学习:非局部跳转setjmp.h中的几个重要函数简介: 在C语言中,我们知道在一个函数的内部是可以通过goto来跳转到我们实现声明标志的地方的,但是这种跳转往往是基于函数内部实现的,而C标准库为我们提供的setjmp中,提供了setjmp,longjmp等函数,就是为了实现非局部跳转和goto的功能的。也是C语言实现异常处理的一种有效方案。提示: 博客:章飞_906285288原创 2017-07-27 22:22:54 · 982 阅读 · 0 评论 -
C语言学习:信号屏蔽字sigset_t,sigprocmask,sigpending
C语言学习:信号屏蔽字简介: 之前在学习sigsetjmp和siglongjmp的时候说过信号屏蔽字的相关东西,在很早之前的关于signal的学习中也讲过信号屏蔽字,所以在这里单独进行总结一下,因为有时候信号相关的处理在程序中还是比较重要的。 定义:什么是信号屏蔽字??信号屏蔽字就是进程中被阻塞的信号集, 这些信号不能发送给该进程, 它们在该进程中被”屏蔽”了. 但是实际上它们是原创 2017-07-28 22:09:50 · 3332 阅读 · 0 评论 -
Linux线程浅析[线程的同步和互斥之线程同步的条件变量pthread_cond_t]
Linux线程浅析[线程的同步和互斥之线程同步的条件变量] 线程同步的条件变量 经典的写者和读者的同步问题线程同步的条件变量线程同步—–条件变量互斥锁的特点就是它只有两种状态:锁定和非锁定条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足 条件变量的内部机制: 条件变量内部是一个等待队列。放置等待的线程,线程在条件变量上等待和通知,互斥锁用来保护等待队列(对等待队列原创 2017-04-03 13:16:36 · 955 阅读 · 1 评论 -
Linux线程浅析[初识线程]
Linux线程浅析[初识线程]线程的基本概念Linux线程的实现线程的创建和终止线程的互斥和同步互斥锁读写锁条件变量线程信号量死锁线程的基本概念进程是资源管理的最小单位,线程是程序执行的最小单位 , 每个进程有自己的数据段,代码段和堆栈段。线程通常叫做轻型的进程,它包含独立的栈和CPU寄存器状态,线程是进程的一条执行路径,每个线程共享其所附属进程的所有资源,包括打原创 2017-03-26 10:30:51 · 1138 阅读 · 0 评论 -
Linux的相关简单配置
Linux的相关简单配置Linux下安装android-studio sudo apt-add-repository ppa:paolorotolo/android-studio sudo apt-get update sudo apt-get install android-studioLinux下安装Vim编辑器 sudo apt-get install vim vim的相关配置pe原创 2017-02-19 11:49:51 · 546 阅读 · 0 评论 -
Linux下的软连接和硬链接
Linux下的软连接和硬链接首先说一下什么是软连接和硬链接吧: 硬链接:就是创建在原来文件基础之上,类似在创建一个文件,不依赖源文件。每次硬链接一次都会在原来的文件基础之上链接数再加1; 软连接:在原来文件的基础之上,创建一个类似windows下的快捷方式,它以来源文件,如果源文件没了的话,那么这个“这个快捷方式”也就没有用了下面演示下命令行下创建软链接和硬链接,都原创 2017-03-01 23:11:30 · 1299 阅读 · 0 评论 -
POSIX标准下的非缓冲类型的I/O流(Unix或Linux)
POSIX标准下的非缓冲类型的I/O流(Unix或Linux)首先在这里先介绍一下什么是全缓存,行缓存以及无缓存的这几种类型;便于区分标准C的io缓存类型:全缓存: 要求填满整个缓存区后才进行I/O系统调用操作,对于磁盘文件通常使用全缓存访问行缓存: 涉及一个终端时,使用行缓存 行缓存满自动输出 碰到换行符自动输出无缓存: 标准错误流stderr通常是不原创 2017-02-25 11:13:03 · 801 阅读 · 0 评论 -
如何去打造属于自己的cat文件
其实系统cat命令相对功能是比较全的,但是总结下来也只有几点; 1:查看文件 cat cat a.txt 查看 2:输入到文本文件中 cat > a.txt //输出重定向 3:重定向输出到文本文件中 cat < a.txt //输入重定向直奔主题:上代码#include<stdio.h>#include<stdlib.h>#include<fcntl.h>#include"io.h原创 2017-02-25 14:05:52 · 1084 阅读 · 0 评论 -
Linux内核中的FILE文件数据结构和dup,dup2函数
内核中的数据结构和dup,dup2函数首先介绍一下内核数据结构:一个打开的文件在内核中使用三种数据结构表示: 文件描述符表 文件描述符标识 文件表项指针 文件表项 文件状态标志 读写追加同步和非阻塞 当前文件偏移量 i节点表项指针 引用计数器 i节点原创 2017-02-26 14:28:25 · 957 阅读 · 0 评论 -
Linux进程浅析(中)
Linux进程浅析(中)进程调度进程标识进程创建父子进程的关系进程链和进程扇孤儿进程进程调度第一步:处理内核中的工作第二步:处理当前进程第三步:选择进程 1:实时进程 2:普通进程第四步:进程交换(开销很大)目前主要运用的是分时系统,CPU会为进程分配时间片,在时间片内进程需要运行完毕,如果不运行完毕,那么也必须要让出CPU,task_原创 2017-03-08 23:55:11 · 730 阅读 · 1 评论 -
关于Linux进程进程浅析(上)
Linux进程浅析(上)程序和进程内核中的进程结构C语言启动过程进程终止方式Linux下进程的查看进程的几种状态以及相互转换程序和进程程序:程序就是存放在磁盘中的可执行文件进程:程序的执行实例称为进程进程具有独立权限和指责,如果系统中某个进程崩溃,它不会影响到其余的进程每个进程运行在各自的虚拟地址中,进程之间可以通过由内核控制的机制和相互通讯进程ID:每个LInux进程都一定有原创 2017-03-04 19:25:22 · 451 阅读 · 0 评论 -
Linux进程浅析(上)
Linux进程浅析(上)程序和进程内核中的进程结构C语言启动过程进程终止方式Linux下进程的查看进程的几种状态以及相互转换程序和进程程序:程序就是存放在磁盘中的可执行文件进程:程序的执行实例称为进程进程具有独立权限和指责,如果系统中某个进程崩溃,它不会影响到其余的进程每个进程运行在各自的虚拟地址中,进程之间可以通过由内核控制的机制和相互通讯进程ID:每个LInux进程都一定有原创 2017-03-06 23:00:52 · 384 阅读 · 0 评论 -
Linux线程浅析[线程初始化和销毁,线程分离]
Linux线程浅析[线程分离]线程的初始化和销毁什么是线程的分离线程分离函数线程的初始化和销毁回想一下线程的创建pthread_create的时候,第二个参数是pthread_attr_t,那么这个参数类型代表的是什么??attr是特征特性的缩写,所以这个参数的意思大概是创建线程的特征特性. 所以先了解一下这个参数的结构体类型: typedef struct{ int etach原创 2017-03-27 23:19:17 · 4936 阅读 · 0 评论 -
Linux进程浅析(下)
Linux进程浅析下僵尸进程wait和waitpid函数僵尸进程看到僵尸二字很多时候我们都会想到林正英饰演的僵尸道长系列,僵尸都是一群失去了生命,但是却可以活动的尸体吧,其实在linux内核中其实也相似,这类进程也是失去生命,但是却没有被彻底回收掉的 一批进程。 僵尸进程的概念:子进程结束但是没有完全释放内存,在内核中(task_struct没有释放),该进程就是僵尸进程当僵尸进程的父进原创 2017-03-13 22:39:44 · 647 阅读 · 0 评论 -
Linux进程IPC浅析[进程间通信概述与管道]
Linux进程IPC浅析[进程间通信]进程间通信概述IPC匿名管道pipe命名管道fifo匿名管道和命名管道之间对比进程间通信概述IPC进程间的通讯目的:数据传输 :一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几兆字节之间共享数据:多个进程想要操作共享数据,一个进程对共享数据修改,其他进程应该立即看到通知事件:一个进程需要向另外一个或一组进程发送消息,通知它发生了原创 2017-04-09 15:44:25 · 885 阅读 · 0 评论 -
Linux线程浅析[线程的同步和互斥之线程互斥锁]
Linux线程浅析[线程的同步和互斥]线程同步线程互斥线程互斥的相关函数线程同步的相关函数线程同步是宏观上的一个概念,在微观上面包含线程的相互排斥和线程的执行顺序的约束问题解决方法: 条件变量 线程信号量例子:一栋大楼的建造,包含了质监局的检验和工程队的施工,那么假设质监局和工程队是两个线程,而大楼则为共享资源,首先相互排斥的原则为工程队施工的时候,质监局是不能进行检验原创 2017-03-30 23:25:25 · 1117 阅读 · 0 评论 -
exec函数和system函数
exec函数和system函数exec系列函数system函数exec系列函数首先讲一下exec,exec系列的函数主要是在代码中去执行可执行程序,类似android中的shellUtils,也就是去执行脚本语言或者执行程序在用fork函数创建子进程后,子进程往往要调用一种exec函数以执行另一个程序当进程调用一种exec函数时,该进程完全由新程序代换,替换原有进程的正文,而新程序则从其mai原创 2017-03-14 23:14:41 · 5159 阅读 · 1 评论 -
Linux线程浅析[线程的同步和互斥之线程读写锁]
Linux线程浅析[线程的同步和互斥之线程读写锁] 读写锁的出现是为了解决互斥锁的弊端使用上述Linux线程浅析[线程的同步和互斥之线程互斥锁]的案例来进行解释吧,即针对上述案例中的银行存取款的互斥锁,当一个账户去访问的时候,另外一个账户其实就需要被阻塞,但是现实中往往会有这样一种情况,一个人去存,但是其余的人是去查询,如果存的人获取了锁,那么查询的人就需要被阻塞,这就导致了查询效率极低的这样原创 2017-03-31 22:27:10 · 1785 阅读 · 0 评论 -
Linux进程IPC浅析[进程间通信SystemV消息队列]
Linux进程IPC浅析[进程间通信SystemV消息队列]System V IPC的概述System V IPC对象访问System V IPC消息队列System V IPC的概述System V Ipc概述: 1:Unix系统存在信号,管道和命名管道等基本通信机制 2:System V引入三种高级进程间通信机制消息队列,共享内存和信号量IPC对象存在于内核中而不是文件系统中,由用原创 2017-04-10 23:19:22 · 1498 阅读 · 0 评论 -
文件IO流中的三个函数,fcntl,ioctl,mmap函数
文件IO流中的三个函数,fcntl,ioctl,mmp函数fcntlioctlmmp 提示: 博主:章飞 _906285288的博客 博客地址:http://blog.csdn.net/qq_29924041fcntl函数之前写过一篇博客是关于linux系统IO方面的,这里是对其做的一些简单补充的一些函数信息。http://blog.csdn.原创 2018-01-22 13:18:36 · 2583 阅读 · 0 评论