
C
与C语言基础相关的玩意。
张三和李四的家
来不及解释了,快上车。
展开
-
图解双向链表的插入动作。
初始态变化态我要插入进去结果态原创 2021-06-08 11:19:18 · 452 阅读 · 0 评论 -
字节流读写的小demo
int main(void){ //////////////////写二进制数据到stdout 中 uint16_t width = 700; ///////// putc() return the character written as an unsigned char cast to an int int ret = putc( width>> 0, stdout); printf("\t [%d] \n",ret); //[188]原创 2021-04-23 09:54:48 · 178 阅读 · 0 评论 -
Address already in use 的现象
“Address already in use 的现象下面建立的套接字都是TCP 套接字。server 创建监听套接字 socket1,绑定一个指定端口,并接受若干连接。在另外一个终端再次运行server ,在bind 出会返回错误“Address already in use ”(即使使用了SO_REUSEADDR)server 创建监听套接字,绑定了一个指定端口,并接受了若干连接。杀死server后在重新启动server,程序会在 bind 出返回错误 “Address already原创 2020-12-31 11:20:29 · 939 阅读 · 0 评论 -
Linux FB 的学习
linux FB 是CPU 到显示器中的中间人,像一个池子一样。CPU 将操作好的数据项放到池子中,然后再将这些数据显示到屏幕上。它的好处在于 用户可以将FB看成一个显示内存的影响,当将其映射到用户进程空间是可以直接进行读写操作。操作的方式是通过ioctl的方式,有底层驱动实现。直接使用命令行操作FB 的方式用命令:$ dd if=/dev/zero of=/dev/fb 清空屏幕用命令:#dd if=/dev/fb of=fbfile可以将fb中的内容保存下来;可以重新写回屏幕: #dd i原创 2020-06-08 10:22:39 · 1852 阅读 · 0 评论 -
Linux编程设计——套接字
套接字,另外一种进程间通信的方式。之前的IPC机制只能限定在一台计算机系统上进行资源共享。而套接字接口可以使,一台机器上的进程和另外一个机器上的进程通信。什么是套接字套接字是一种通信机制,凭借这种机制,客户/服务器系统的工作即可以在本地单机上工作,也可以跨网络进行。 套接字和管道类型,同样是读写类文件描述符的操作。不同的是,套接字明确的将客户和服务器分开来。套接字机制可以实现多个客户连接一个原创 2016-10-20 23:32:26 · 2555 阅读 · 7 评论 -
Linux程序设计--进程
什么是进程进程的结构系统进程进程调度启动新进程原创 2016-10-21 22:03:33 · 453 阅读 · 0 评论 -
stdin,stdout 和STDOUT_FILENO,STDIN_FILENO
stdin,stdout 和STDOUT_FILENO,STDIN_FILENOstdin,stdou等是FIEL*类型,属于文件流,在<stdino.h>中。extern FILE *stdin;extern FILE *stdout;extern FILE *stderr;STDOUT_FILENO,STDIN_FILENO等是文件描述符,是宏定义,在<unistd.h>中。 其头文件原创 2016-09-28 15:24:47 · 576 阅读 · 0 评论 -
Linux程序设计--线程
什么是线程线程的优点和缺点第一个线程程序信号量互斥量线程属性多线程1. 什么是线程在一个程序中的多个执行路线就叫线程。更准确的说:线程就是一个进程内部的一个控制序列。弄清楚fork系统调用和创建新线程之间的区别非常重要。当进程执行fork调用时,将创建出该进程的一份新副本。这个新进程拥有自己的变量和之间的PID,它的时间调用也是独立的,他们的执行几乎完全独立与父进程。当在进原创 2016-10-21 22:15:59 · 419 阅读 · 0 评论 -
Linux程序设计——进程间通信机制
信号量、共享内存和消息队列IPC(Inter-Process Communication,进程间通信)机制 信号量: 用于关联对资源的访问 共享内存: 用于在程序之间高效地共享数据 消息队列: 在程序之间传递数据的一种简单方法IPC信号量用于管理对资源的访问。为了防止出现多个程序同时访问一个共享资源而引发的问题,我们需要有一种方法,它可以通过生成并使用令牌来授权,在任一时刻只能有一个执行线程访原创 2016-10-22 15:07:05 · 717 阅读 · 0 评论 -
Linux程序设计——管道
进程间通信:管道什么是管道当从一个进程连接数据流到另一个进程时,我们使用术语管道。我们通常是把一个进程的输出通过管道连接到另一个进程的输入。进程管道popen函数函数原型:FILE * popen(cosnt char * command,const char * open_mode);popen函数允许一个程序将另一个程序作为新进程来启动,并可以传递数据给它或者通过它接收数据。comma原创 2016-10-22 13:27:56 · 652 阅读 · 0 评论 -
异步套接字基础:select函数以及FD_ZERO、FD_SET、FD_CLR、FD_ISSET
select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> select函数: 系统提供select函数来实现多路复用输入/输出模型。原型: #include <sys/time.h> #include <unistd.h> int select(int maxf转载 2016-03-18 13:22:31 · 835 阅读 · 0 评论 -
C/C++宏定义的可变参数
编写代码的过程中,经常会输出一些调试信息到屏幕上,一般会调用printf这类的函数。但是当调试解决之后,我们需要手工将这些地方删除或者注释掉。再这次的项目中就用到类似问题,为了调试程序,再一些地方输出了很多的信息,随着项目的调试,输出的信息越来越多。于是就面临着,如何处理这些输出信息的语句。简单删掉,不仅有一定的工作量,而且也不能保证之后就不出现问题,出现问题后这些信息还是有用的。转载 2016-03-18 15:01:52 · 603 阅读 · 0 评论 -
断言 assert
编写代码时,我们总是会做出一些假设,断言就是用于在代码中捕捉这些假设,可以将断言看作是异常处理的一种高级形式。断言表示为一些布尔表达式,程序员相信在程序中的某个特定点该表达式值为真。可以在任何时候启用和禁用断言验证,因此可以在测试时启用断言,而在部署时禁用断言。同样,程序投入运行后,最终用户在遇到问题时可以重新起用断言。C里用法 使用断言可以创建更稳定,品质更好且不易于出错的代码。当需要原创 2016-06-26 10:47:54 · 1408 阅读 · 0 评论 -
宏定义
数值宏常量#define TIMEOUT 500从本行宏定义开始,以后的代码就就都认识这个宏了;可以把任何东西定义成宏 在以后在定义一些宏常数的时候用 const代替,编译器会给 const 修饰的只读变量做类型校验,减少错误的可能。但一定要注意 const修饰的不是常量而是 readonly 的变量,const 修饰的只读变量不能用来作为定义数组的维数,也不能放在 case 关键字后面。 字符原创 2016-06-26 17:15:47 · 430 阅读 · 0 评论 -
enum 关键字
如果一个变量你需要几种可能存在的值,那么就可以被定义成为枚举类型。之所以叫枚举就是说将变量或者叫对象可能存在的情况也可以说是可能的值一 一例举出来。 枚举,是一个变量取值范围的限定,而定义的花括号内是它的取值范围。 或者也可以这样想,变量的取值范围变量由我来定,而我定的范围是在花括号中。enum enum_type_name{ENUM_CONST_1,ENUM_CONST_2,...原创 2016-06-26 11:17:28 · 551 阅读 · 0 评论 -
struct 和 typedef struct
struct 就是结构体。 typedef 是别名。 typedef struct 就是给struct 类型起别名。但这不是使用的方便之处。 struct Student{ int a;}Stu1;Stu1 是一个结构体的变量。在新建其它的struct Student 时,必须使用 struct Student 为类型名后面追加变量名。此时typedef的作用就来了。 type原创 2016-06-26 11:02:18 · 456 阅读 · 0 评论