
每日代码
文章平均质量分 70
s1f
这个作者很懒,什么都没留下…
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
day_11_9 实现数组交换,排序
/实现数组交换、排序操作原创 2017-11-09 20:49:59 · 164 阅读 · 0 评论 -
Linux_基础IO
对于I/O,大家应该都不陌生,接触过计算机的同学应当都知道或了解I/O是什么。I/O英文为Input/Output,即输入输出的意思,在计算机上,我们的一台电脑可不是仅仅只有一个显示器,一个主机。还有着键盘啦,鼠标啦,打印机等等,其实这些设备都属于I/O设备,用来和计算机交互信息的,可以把我们想要的数据通过键盘输入进去,也可以通过打印机把我们想要的数据打印出来,这就是I/O。大家在学习C语言的时候...原创 2018-04-21 10:30:37 · 155 阅读 · 0 评论 -
Linux_系统I/O
C文件I/O中,用到过fopen,fclose,fread,fwrite等函数,这些函数都是C标准库的函数,称之为库函数,这都是已经封装好的。而open,close,read,write,lseek等都属于系统提供的接口,称之为系统调用接口。所以库函数的底层实现,其实还是系统调用,不过库函数开发人员更好使用。接下来就来谈谈系统中文件处理。1.文件描述符fd文件描述符:内核(kernel)利用文件描...原创 2018-04-21 11:43:28 · 146 阅读 · 0 评论 -
Linux_进程信号
理解信号 1.用户输入命令,在shell下启动一个前台进程 2.用户按下Ctrl-c,这个键盘产生一个硬件中断。 3.如果CPU当前正在执行这个进程的代码,则该进程的用户空间代码暂停执行,CPU从用户态切换到内核态处理硬件中断 4.终端驱动程序将Ctrl-C解释一个SIGNINT信号,记载该进程的PCB中(也可以说发送了一个SIGNINT信号给该进程)。 5.当某个时...原创 2018-04-25 15:14:14 · 298 阅读 · 0 评论 -
Linux_文件系统
linux下有很多指令。当我们使用ls -l的时候,可以查看文件的信息,不止有文件名,还有文件元数据。[root@dreame ~]# ls -l总用量 48-rwxr-xr-x 1 root root 8512 3月 30 15:13 a.outdrwxr-xr-x 2 root root 4096 3月 30 15:36 Desktopdrwxr-xr-x 2 root root ...原创 2018-04-21 21:02:56 · 190 阅读 · 0 评论 -
Linux_父子进程通过消息队列通信
#include <stdio.h>#include <wait.h>#include <stdlib.h>#include <string.h> #include <sys/types.h>#include <sys/ipc.h>#include <sys/msg.h>#include &l原创 2018-04-27 11:40:11 · 2559 阅读 · 0 评论 -
Linux_线程相关
线程概念什么是线程 在一个程序里的一个执行路线就叫做线程。更确切的来说,“线程是一个进程内部的控制序列” 一切进程至少都有一个执行线程进程和线程 进程是资源竞争的基本单位 线程是程序执行的最小单位 线程共享进程数据,但也拥有自己的一部分数据,例如线程ID,某一组寄存器,线程的函数调用栈,信号屏蔽字,调度优先级等等一进程的多个线程共享 一个进程内可以有多个线程,多...原创 2018-04-29 16:23:42 · 156 阅读 · 0 评论 -
Linux_HTTP服务器
一个非常简单的http服务器的搭建,用到了TCP协议以及HTTP协议,首先建立一个监听套接字,用来监听链接我们服务器的请求,当监听成功后将这个监听套接字交给一直在等待的接受请求,接收后返回一个用于给客户端通信的套接字,此时拿着这个套接字就可以像访问我们的客户端发送消息了,我们此时发送的消息是一个简单的HTTP报文:HTTP/1.0 200 OK\n\n<html><h1&...原创 2018-05-15 16:28:11 · 471 阅读 · 1 评论 -
Linux__网络编程套接字(UDP/TCP)
重点知识: ·IP地址、端口号、网络字节序的基本概念 ·socket api的基本用法 ·实现简单的UDP客户端/服务器 ·实现简单的TCP客户端/服务器(单链接版本,多进程版本,多线程版本) ·理解tcp服务器建立连接,发送数据,断开连接的流程基础概念: IP地址:IP协议有两个版本,IPV4和IP...原创 2018-07-05 18:22:28 · 494 阅读 · 0 评论 -
Linux__计算机网络(应用层/HTTP协议)
重点知识: ·理解应用层协议,学习HTTP协议 ·理解传输层的作用和TCP的机制和特性 ·理解网络层的作用和IP协议 ·理解数据链路层的作用和ARP协议 ·理解TCP/IP协议 ·分析网络问题的工具和方法应用层 最贴近于实际,解决日常需求的网络应用,就是在这一层,也是和用户...原创 2018-07-06 00:28:20 · 486 阅读 · 0 评论 -
Linux_进程间关系及守护进程
进程组/作业/会话1.进程组 每个进程除了有一个进程ID之外,还属于一个进程组。进程组是一个或多个进程的集合。通常,他们与同一个作业相关联,可以接收来自同一终端的各种信号。每个进程组有一个唯一的进程组ID。每个进程组都可以有一个组长进程。组长进程的标识是,其进程组ID等于进程ID。组长进程可以创建一个进程组,创建该组中的进程,然后终止。只要某个进程中一个进程存在,则该进程组就存在,这与组长进...原创 2018-05-02 15:31:09 · 204 阅读 · 0 评论 -
Linux多线程_死锁
死锁1、死锁产生的原因 死锁是指两个或两个以上的进程在执行过程中,由于竞争资源或者由于彼此通信而造成的一种阻塞的现象,若是无外力作用,他们都将无法推进下去。此时称系统处于死锁状态或系统产生了死锁,这些永远在互相等待的进程称为死锁进程。 一个简单的例子,哲学家进餐问题。假如有五个哲学家围坐在一张圆桌上思考问题,每个人的左手边和右手边各有一只筷子,当哲学家饿了,会拿起左右两边的筷子进餐,如...原创 2018-05-02 14:06:02 · 373 阅读 · 0 评论 -
Linux_线程的同步与互斥
线程同步与互斥mutex(互斥量) 大部分线程,线程使用的数据都是局部变量,变量的地址空间在线程空间内,这种情况,变量归属单个线程,其他线程无法获得这种变量。 但有时候,很多变量需要在线程空间内共享,这样的变量称为共享变量,可以通过数据的共享,完成线程之间的交互。 多个线程并发的操作共享变量,会带来一些问题。例如//操作共享变量会有问题的售票代码#include <std...原创 2018-05-02 13:41:26 · 201 阅读 · 0 评论 -
实现编写一个程序,它从标准输入读取C源代码,并验证所有的花括号都正确的成对出现。
//从标准输入读取C源代码,并验证所有的花括号都正确的成对出现原创 2017-11-11 15:05:51 · 1330 阅读 · 0 评论 -
Linux入门——进程概念
进程:基本概念:程序的一个执行实例。担当分配系统资源(cpu时间,内存)的实体。PCB(process control block):进程信息存放在PCB中,即进程所有属性的集合都在进程控制块中存放在Linux操作系统下的PCB是:task_struct task_struct是Linux内核的一种数据结构,会被装载在RAM(内存)里并包含着进程的信息。task_struct内容分类标识符:描述本...原创 2018-03-23 22:46:20 · 318 阅读 · 0 评论 -
单链表常见笔试面试题
定义一个结构体,用来表示链表上的每个节点的类型typedef char LinkTypetypedef struct LinkNode { LinkType data; struct LinkNode* next;} LinkNode;1)逆序打印单链表使用低轨思想,递归出口 head == NULLvoid LinkListReversePrint(LinkNode* he...原创 2018-03-29 21:38:31 · 231 阅读 · 0 评论 -
Linux文件系统相关操作
C文件I/O在C语言中,默认会打开三个输入输出流,分别是stdin,stdout,stderr,不难发现,这三个流的类型都是FILE*,通过fopen得到的返回值为文件指针,指向打开的文件#include <stdio.h>#include <string.h>int main(){ FILE* fp = fopen("myfile","w"); i...原创 2018-03-31 13:05:12 · 180 阅读 · 0 评论 -
单链表的笔试面试题——进阶版
一.判定两个链表是否相交,但是链表可能带环1.分别求两个链表的环的入口2.如果两个链表的不带环,直接使用之前的方式判定相交3.如果一个带环一个不带环,那么直接返回不相交4.如果两个链表都带环a)如果这两个入口点重合,说明相交,并且是环外相交b)如果从一个入口点出发,绕环一周,能到达第二个入口,说明也相交,并且是环上相交c)如果不是上面两种情况,那么也证明不相交int HasCrossWithCyc...原创 2018-04-03 14:02:32 · 167 阅读 · 0 评论 -
双向链表基本操作
1.DLinklist.h#pragma once#include <stdio.h>#include <stdlib.h>//构建一个结构体,包含链表的数据,前一个指针及后一个指针typedef char DLinkType;typedef struct DLinkNode { DLinkType data; struct DLinkNod...原创 2018-04-03 17:55:50 · 149 阅读 · 0 评论 -
Linux_进程间通信(管道)
进程间通信进程间通信目的数据传输:一个进程需要将他的数据发送给另一个进程资源共享:多个进程间共享同样的资源通知时间:一个进程需要向另一个进程发送消息,通知他们发生了某种事件(如进程终止时要通知父进程)进程控制:有些进程希望完全控制另一个程序的执行(如debug),此事控制进程希望能够拦截另一个进程的所有陷入和异常,并能够及时知道他的状态改变进程间通信发展管道:System V进程间通信POSIX进...原创 2018-04-21 23:30:30 · 289 阅读 · 0 评论 -
Linux——进程间通信(消息队列)
消息队列 消息队列提供了一个从一个进程到另一个进程发送一块数据的方法 每个数据块都被认为是有一个类型,接受者进程接受的数据块可以有不同的类型 消息队列也有管道一样的不足,就是每个消息的最大长度是有上限的(MSGMAX),每个消息队列的总的字节数是有上限的(MSGMNB),系统上消息队列的总数也有一个上限(MSGMIN)消息队列在内核中的表示消息队列函数msgget函数:功能:用来...原创 2018-04-22 23:21:03 · 174 阅读 · 0 评论 -
数据结构_迷宫求解
定义迷宫#include "seqstack.h"#define MAX_ROW 6 //最大行数#define MAX_COL 6 //最大列数typedef struct Maze{ int map[MAX_ROW][MAX_COL];//定义地图}Maze;void MazeInit(Maze* maze){//迷宫求解 int map[MAX_ROW][M...原创 2018-04-22 23:35:06 · 456 阅读 · 0 评论 -
C++函数重载的实现
C++的域作用限定符和命名空间1.C++域作用符::是域作用限定符 例如::a;域作用限定符前面是空表示全局。class A{public: A(int x){};//构造函数 ~A(){};//析构函数private: int _a;//私有成员变量};A::A(int x){//这里的::就是域作用限定符 _a = x;}域作用限定符...原创 2018-07-26 18:53:06 · 334 阅读 · 0 评论