Linux/Unix
文章平均质量分 73
Linux命令,linux平台编程
姜源Jerry
万物伊始,效率本源。大道至简,代码之禅。
展开
-
【Linux命令】date命令全解析
date -R显示当前时间和时区所差小时数date -I只显示年月日date -u显示UTC时间date +"%Y-%m-%d %H:%m:%S"以指定格式输出日期格式字符串列表:%H 小时,24小时制(00~23)%I 小时,12小时制(01~12)%k 小时,24小时制(0~23)%l 小时,12小时制(1~12)%M 分钟(00~59)%p 显示出AM或PM%r 显示时间,12小时制(hh:...原创 2018-05-30 19:51:02 · 923 阅读 · 0 评论 -
《嵌入式linux应用程序开发详解》核心笔记 - 全书
【linux快速入门】自由软件(free software)中的 free 并不是指免费,而是指自由。它赋予使用者四种自由。· 自由之一:有使用软件的自由。· 自由之二:有研究该软件如何运作的自由,并且得以改写该软件来符合使用者自身的需求。取得该软件的源码是达成此目的前提。· 自由之三:有重新散布该软件的自由,所以每个人都可以藉由散布自由软件来敦亲睦另。· 自由之四:有改善原创 2017-06-04 22:07:09 · 3499 阅读 · 3 评论 -
linux下route路由设置命令详解
# route -n // 显示路由表,哪条在前就用哪条,都没有就用default# route add -net 224.0.0.0 netmask 240.0.0.0 dev eth0 // 向路由表中增加1条路由# route add -net 224.0.0.0 netma原创 2017-05-22 09:38:43 · 21761 阅读 · 0 评论 -
《Linux程序设计》第4版 核心笔记
【前言】读本书的学习目标:1. 掌握标准linux C语言函数库和个中linux或unix标准指定的其他工具的使用方法2. 掌握如何使用大多数标准linux开发工具3. 学会通过DBM和MySQL数据库系统存储Linux中的数据4. 理解如何为X视窗系统建立图形用户界面,同时使用GTK和Qt函数库5. 拥有开发自己的实际应用程序的信心和能力一个贯穿全书的大型示例项目原创 2017-05-08 19:22:26 · 2394 阅读 · 0 评论 -
《linux应用开发完全手册》核心笔记(全)
** 本文未附任何实例代码,基于目标板的不同操作不尽相同,网络资源针对比较成熟的开发板均可找到对应的成套实例代码【开发环境构建】1. 开发环境搭建:操作系统或虚拟机Ubuntu安装、网络服务配置、工具安装等 工具资源:https://pan.baidu.com/s/1bpakJtP // 不定期更新 步骤整理:http://blog.csdn.net/sinat原创 2017-05-06 23:04:45 · 19608 阅读 · 8 评论 -
《Unix环境高级编程》第二版 - 核心笔记(3/3)
2017.05.28 ~ 2017.05.30(立志成为终身学习者的第一个端午节3天假期用于复习+学习Unix高级编程)全书总共21章,分为三个阶段,因有一定的基础,故只对核心知识点做笔记,主要是系统调用函数相关,便于后续对于unix函数的快速查找和使用,再届时根据实际需求针对性验证、使用到实际项目中。第一阶段:Unix基础、Unix标准、文件I/O、文件和目录、标准I/O库、系统数据原创 2017-05-30 17:03:51 · 942 阅读 · 0 评论 -
《Unix环境高级编程》第二版 - 核心笔记(2/3)
2017.05.28 ~ 2017.05.30(立志成为终身学习者的第一个端午节3天假期用于复习+学习Unix高级编程)全书总共21章,分为三个阶段,因有一定的基础,故只对核心知识点做笔记,主要是系统调用函数相关,便于后续对于unix函数的快速查找和使用,再届时根据实际需求针对性验证、使用到实际项目中。第一阶段:Unix基础、Unix标准、文件I/O、文件和目录、标准I/O库、系统数据原创 2017-05-29 23:39:53 · 1569 阅读 · 0 评论 -
《Unix环境高级编程》第二版 - 核心笔记(1/3)
2017.05.28 ~ 2017.05.30(立志成为终身学习者的第一个端午节3天假期用于复习+学习Unix高级编程)全书总共21章,分为三个阶段,因有一定的基础,故只对核心知识点做笔记,主要是系统调用函数相关,便于后续对于unix函数的快速查找和使用,再届时根据实际需求针对性验证、使用到实际项目中。第一阶段:Unix基础、Unix标准、文件I/O、文件和目录、标准I/O库、系统数据原创 2017-05-28 23:30:14 · 1010 阅读 · 0 评论 -
linux下signal与alarm函数实现定时器刷新
上篇博文:linux下setitimer定时器与定时器取消存在一个问题:使用 timer_settime() / timer_gettime() 是属于POSIX标准下的定时器函数,可以替代linux下的系统调用函数 settimer() / gettimer,因为这两个linux下的系统调用函数使用的是系统的真实时间,所以推测+实测,timer_settime() / timer原创 2017-05-26 23:23:18 · 3933 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):基本TCP编程、TCP客户端/服务器程序、I/O复用
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12天。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:原创 2017-08-06 21:39:52 · 2793 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):套接字选项、基本UDP编程
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12天。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:原创 2017-08-13 00:09:30 · 592 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):守护进程和inetd超级服务器、高级I/O、Unix域协议
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12天。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:原创 2017-08-19 21:37:10 · 627 阅读 · 1 评论 -
【Sqlite3】使用SQL语句操作sqlite3数据库
在命令行使用SQL语句操作sqlite数据库1. 创建数据库文件(DB) $: sqlite3 DatabaseName.db 创建成功后,会自动进入sqlite命令行的界面" sqlite> " eg: $: sqlite3 testDB.db // 打开名为testDB的数据文件,不存在则创建2. 输入" .database " 查看数据库文件信息 seq // 序号 name // ...原创 2018-06-05 21:46:29 · 4774 阅读 · 0 评论 -
【Linux】打包命令集(tar/gz/bz2/zip/rar)
.tar压缩:tar cvf FileName.tar FileName解压:tar xvf FileName.tar---------------------------------------------.gz解压1:gunzip FileName.gz解压2:gzip -d FileName.gz压缩:gzip FileName.tar.gz解压:tar zxvf FileName.tar....原创 2018-04-29 23:42:15 · 3083 阅读 · 0 评论 -
【samba服务器】建立linux虚拟机与win同步共享文件夹
VM ware 虚拟机中Linux安装samba服务:$ sudo apt-get update$ sudo apt-get install samba$ sudo vi /etc/samba/smb.conf添加如下内容[jiangyuan] #(共享名) comment = jiangyuan share path = /home/jiangyuan writeable = y...原创 2018-04-26 22:25:12 · 1126 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):广播、多播、信号驱动I/O、线程
全书共31章+附录。计划安排:从第19章开始内容更深入,逐渐看不懂,故后续章节精简。时间安排:计划时间1.5个月 == 6个周末 == 12个自然日。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:套原创 2017-08-26 23:33:33 · 637 阅读 · 0 评论 -
fcntl文件属性和ioctl文件输入输出控制函数详解
一、文件属性fcntl()函数fcntl()函数用于获得和改变已经打开文件的性质。1、 fcntl()函数介绍 fcntl()函数向打开的文件fd发送命令,更改其属性。函数原型如下:#include #include int fcntl(int fd, int cmd);int fcntl(int fd, int cmd, long arg);int原创 2017-08-14 23:48:16 · 987 阅读 · 0 评论 -
select函数监控一个或多个文件描述符状态程序
/* 一个文件描述符监控 */#include #include #include #include #include #include #include #include #define PATH "/tmp/test_file"int main (void){ int fd = 0; int fd_max = 0; fd_set fd_sets; fd_set原创 2017-08-14 22:50:48 · 3591 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):简介、传输层、套接字编程
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12个自然日。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-0原创 2017-08-05 23:47:00 · 2536 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):非阻塞I/O、ioctl操作、路由套接字
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12天。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:原创 2017-08-20 22:22:29 · 674 阅读 · 0 评论 -
《Unix网络编程》卷1:套接字联网API(第3版):名字与地址互换、IPv4和IPv6互操作性
全书共31章+附录。计划安排:吃透这本书,一天三章+源码,并实测代码做当天笔记,CSDN见。时间安排:计划时间1.5个月 == 6个周末 == 12天。2017.08.05 第01-03章:TCP/IP简介、传输层、套接字编程简介2017.08.06 第04-06章:基本TCP编程、TCP客户端/服务器程序、I/O复用2017.08.12 第07-09章:原创 2017-08-13 22:56:32 · 729 阅读 · 0 评论 -
linux下setitimer定时器与定时器取消
linux下setitimer定时器与定时器取消原创 2017-05-24 23:21:54 · 12777 阅读 · 0 评论 -
Linux下的时间函数以及格式化输出时间
我们在编程中可能会经常用到时间,比如取得系统的时间(获取系统的年、月、日、时、分、秒,星期等),或者是隔一段时间去做某事,那么我们就用到一些时间函数。linux下存储时间常见的有两种存储方式,一个是从1970年到现在经过了多少秒,一个是用一个结构来分别存储年月日时分秒的。time_t 这种类型就是用来存储从1970年到现在经过了多少秒。struct timeval结构,可以更精确,原创 2017-05-24 23:06:41 · 4952 阅读 · 0 评论 -
Unix高级编程:环境变量(续)、管道、文件重定向、信号基础
一、环境变量(续)"setenv"(3)#include int setenv(const char *name, const char *value, int overwrite);功能:改变或增加一个环境变量参数:"name" 要添加或改变的环境变量名"value" 环境变量的值"overwrite" 环境变量存在,值取 0 环境变量值不变;值取非 0 环境变量原创 2017-01-15 22:53:39 · 425 阅读 · 0 评论 -
Unix高级编程:进程的同步、加载新的程序映像、环境变量
一、进程的同步异步、同步实现进程同步需要使用一些函数:wait(2)/waitpid(2)/exit(3)"收尸" //回收子进程,就叫收尸父进程创建子进程后,两个进程异步,在父进程调用wait阻塞等待子进程的结束。//当子进程结束的时候,子进程向父进程发送了SIG_CHILD信号。//当父进程受到这个信号,就解除wait阻塞为子进程收尸。"wait"(原创 2017-01-15 22:51:56 · 515 阅读 · 0 评论 -
Unix高级编程:库函数与系统调用函数区别、文件锁、进程基础
一、库函数和系统调用之间的关系和区别(文件操作函数说明)fopen(3)FILE *fopen(const char *path, const char *mode);当使用fopen(3)打开文件的时候,发生了什么?1)首先分配了一块内存空间,用于文件内容的缓冲2)然后调用open(2)fputc(3)int fputc(int c, FILE *stream原创 2017-01-15 22:50:44 · 525 阅读 · 0 评论 -
Unix高级编程:获取文件元数据、文件夹操作
1. 计算机大小端,代码参见 big_little.c#include int main(void) { short var_a = 0x0001; char *var_c = (char *)&var_a; if(*var_c) { printf("little ...\n"); } else p原创 2017-01-15 22:49:33 · 529 阅读 · 0 评论 -
Unix高级编程:文件的基本操作、mmap将文件映射虚拟地址、文件描述符的复制
一、文件的基本操作"open"(2)#include #include #include int open(const char *pathname, int flags,...); //正确写法,真正原型以写入的方式打开文件,如果文件不存在,则创建文件,指定文件的权限为 664open(filename, O_RDWR|O_CREAT|O_TRUNC, mode);原创 2017-01-15 22:48:01 · 801 阅读 · 0 评论 -
Unix高级编程:malloc内存管理、缓冲机制、mmap内存映射到进程、系统调用文件操作
:"动态内存释放后打印" free(str); //释放掉后str指针不合法,所以需置空 printf("%s\n", str); //打印结果不确定。 str = NULL;return 0;:"悬空指针" int *p; //局部变量没有初始化 == 悬空指针 *p = 10; //赋值错误,编译ok执行时段错误错误示范1:ch原创 2017-01-15 22:46:47 · 827 阅读 · 0 评论 -
Unix高级编程:动态加载、错误处理、进程映像
补充:gcc text.o tmath/add.o tmath/mul.o -v找到 crt1.o 的完整路径nm crt1.o路径"程序的入口是在 _start 函数开始"(不是main函数),系统已写好,_start环境文件执行后才调用main函数,让main在可执行文件中从 U 变 T"C语言程序的入口是 main 函数",由用户编写。函数在汇编语言里都对应一原创 2017-01-14 21:43:57 · 449 阅读 · 0 评论 -
Unix高级编程:环境变量、静态库、动态库制作和使用、gdb调试工具
判断电脑大端小端 (内存地址默认从低地址到高地址)方法 1. short var_a = 0x0001;char *var_p = &var_a;如果var_p是1,则为小端方法 2. union{ short var_a; char var_p; }; 如果var_p是1,则为小端学好C语言3句话:1. 常量和变量2. 运算符的优先级和结合性3. 变量的内存空间。原创 2017-01-14 21:34:19 · 709 阅读 · 0 评论 -
Unix高级编程:指针、typedef、头文件的使用
一.复习以下C语言(指针、typedef、预处理)(一)指针指针是地址,这句话是错误的。"指针是地址的类型"。具体的一个地址是指针类型的。指针类型 * 整数类型 int字符类型 char数据类型:"访问内存的方式"常量和变量,常量和变量在内存中都分配了一定的空间。"常量"的内存空间里的值是"只读 r"的"变量"的内存空间里的值是"可读可写 rw"的原创 2017-01-14 21:31:04 · 911 阅读 · 0 评论 -
Unix高级编程:信号处理函数的注册、信号的产生、阻塞、未决
一、使用signal(2)向进程注册信号处理函数"kill -l" 显示所有可用的系统信号的编号/*举例向进程注册2号信号的用户自定义的处理程序,signal.c*/#include #include void handle(int signum) { printf("recv signal num %d..\n", signum); return;}原创 2017-01-15 22:54:34 · 1444 阅读 · 0 评论 -
Unix高级编程:线程基础、线程的创建、退出、分离、汇合、同步问题
一、线程的基础知识进程和程序的区别进程和线程的区别:"线程,是执行的基本单位,线程共享进程的资源"。(1条线程就是1条执行的基本单位,每个线程有自己独立的栈帧)进程,是资源分配的基本单位,调度的单位。进程有自己的pid,线程也有自己的id,称为"tid"。"一个进程里可以有多个线程"。每个进程都至少有一个线程,这个线程是进程的主线程。需要"多条执行路线"原创 2017-01-15 22:57:59 · 747 阅读 · 0 评论 -
Unix高级编程:pause函数mysleep的实现、可重入函数、定时器、进程间通讯
一、pause函数的使用该函数使调用进程进入无时限的睡眠状态"pause"(2) //暂停/中止#include int pause(void);功能:等待信号参数:void返回值:成功 - 不返回,阻塞信号,信号捕获后再返回失败 - 返回-1,errno被设置/* 使用alarm和pause实现sleep的功能,mysleep.c */#include原创 2017-01-15 22:55:18 · 770 阅读 · 0 评论 -
openWRT源码下载与配置编译
【安装相关工具和库】(1) 安装 SVN 工具,用于下载 openwrt 源码:$:' sudo apt-get install subversion(2) 安装 git 工具$:' sudo apt-get install git-core(3) 安装依赖的库文件$:' sudo apt-get install gcc g++ binutils patch bzip原创 2017-05-11 20:20:59 · 1942 阅读 · 0 评论 -
Linux 设备文件/dev/*详解、查询
设备管理是 Linux 中比较基础的知识,与内核的关系也比较密切。随着 Udev 的广泛使用,Linux 发行版的智能程度越来越高,许多 Linux 新用户对 /dev 目录下的东西变得不再熟悉,有时候遇见问题就会抓狂。Linux 中的设备按照存取方式的不同,可以分为两种:字符设备无缓冲且只能顺序存取块设备有缓冲且可以随机(乱序)存取而按照是否对应物理实体,也可以分为两种:原创 2017-05-10 23:42:03 · 55505 阅读 · 2 评论 -
signal与sigaction函数使用
signal,此函数相对简单一些,给定一个信号,给出信号处理函数则可,当然,函数简单,其功能也相对简单许多,函数详情直接 man 手册查看。/* 举例演示 */#include #include #include void ouch(int sig){ printf("I got signal %d\n", sig); // (void) signal(SIGINT, SIG_原创 2017-05-10 23:31:26 · 650 阅读 · 0 评论 -
pthread_attr_init () 线程属性函数使用
【线程属性】线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。调用pthread_attr_init之后,pthread_t结构所包含的内容就是操作系统实现支持的线程所有属性的默认值。如果要去除对pthread_attr_t结构的初始化,可以调用pthread_attr_destroy函数。如果pthread_attr_原创 2017-05-10 23:08:04 · 21806 阅读 · 1 评论 -
【网络爬虫项目】实战知识点 - webcrawler
【网络爬虫项目】webcrawler"grep" vi下透过文件的文本查找工具$ grep -i template *.cpp //template 要查找的字符串一、变长参数表返回类型 函数名(参数类型1 形参1, 参数类型2 形参2, ...);#include va_list ap;va_start(ap, 形参2); //ap, ...前最近的一个参原创 2017-05-01 17:02:03 · 1231 阅读 · 0 评论