冀博
本科数学专业,对数学有着浓厚兴趣,擅长逻辑推理,喜欢模糊数学。
研究生计算机专业,方向为系统结构中的嵌入式设计。喜欢C,汇编,C ,嵌入式,uc/os.Linux内核,熟悉ARM7和ARM9内核。
工作方向:1)驱动开发
2)网络设备研发(边界设备)
兴趣爱好:
1)经济学,数学,历史。
2)喜欢咖啡,调酒,酿酒,品茶,厨艺
3)Linux内核,网络安全,加解密,DPDK,MTCP,fstack
4) 区块链研究
展开
-
C易错知识点
参考酷客网,对其进行了简单整理1、下面的程序并不见得会输出 hello-std-out,你知道为什么吗?#include#includeintmain() { while(1) { fprintf(stdout,"hello-std-out"); fprintf(stderr,"hello-std-err"); sleep(1); }原创 2013-05-30 15:01:49 · 3504 阅读 · 2 评论 -
Linux之文件编程(四)
Linux文件编程之安装文件系统 前言: 可能我们机子上都按了两个操作系统Linux操作系统和XP,那么我们一般都可以在Linux下访问XP下的文件,但是我们却不能在XP下访问Linux,这是为什么呢? 一.安装文件系统 1.由于 Ext2/Ext3是 Linux 的标准文件系统,所以系统把EXT2 文件系统的磁盘分区做为系统的根文件系统,EXT2 以外的文件系统(如 Window的 FAT32 文件系统)则安装在根文件系统下的某个目录原创 2010-11-17 13:09:00 · 4189 阅读 · 0 评论 -
Linux下的串口编程(二)
Linxu下的串口编程(二) ---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comUpdate-Time :原创 2011-02-11 16:23:00 · 22762 阅读 · 20 评论 -
Linux 下的串口编程(一)
---------------------------------------------------------Author :tiger-johnWebSite :blog.csdn.net/tigerjbEmail :jibo.tiger@gmail.comTiger声明:本人鄙视直接复制本人文章而不加出处的个人或团体,但不排斥别人转载tiger-john的文章,只是请您注明出处并和本人联系或留言给我。3Q------------------------------------------原创 2011-02-14 14:45:00 · 12371 阅读 · 10 评论 -
Linux C语言内联汇编使用
本文档的Copyleft归rosetta所有,使用GPL发布,可以自由拷贝、转载,转载时请保持文档的完整性。参考资料:《Linux内核完全剖析》,《新版汇编语言程序设计》,《Linux C编程一站式学习》 最近要改个C语言算法的关键部分用汇编语言实现,Linux里嵌入汇编基本使用AT&T汇编,比如Linux系统的启动部分用的就是AT&T汇编 。以前学过AT&T汇编,但学过一段时间就忘了,但对转载 2012-07-02 15:38:19 · 6829 阅读 · 0 评论 -
Linux时间函数之gettimeofday()函数之使用方法
一.gettimeofday()函数的使用方法:1.简介:在C语言中可以使用函数gettimeofday()函数来得到时间。它的精度可以达到微妙2.函数原型:#includeint gettimeofday(struct timeval*tv,struct timezone *tz )3.说明:gettimeofday()会把目前的时间用tv 结构体返回,当地时区的信息则放到tz所指的结构中4原创 2011-12-04 15:59:10 · 89349 阅读 · 4 评论 -
linux 延时函数几个资料
linux 延时函数几个资料 转自http://blog.ednchina.com/qiu1123/251065/Message.aspx一、 基础知识1、时间类型。Linux下常用的时间类型有4个:time_t,struct timeval,struct timespec,s转载 2011-10-10 15:35:48 · 5290 阅读 · 0 评论 -
字符串小知识点
字符串小知识点(持续更新)1.sizeof()和strlen()计算字符串的长度的区别1>sizeof()计算的字符串占空间的大小;sizeof常用来计算自定义结构体的大小2>strlen()计算的字符串的实际长度,但不包括最后字符串结束标志’\0’。例如:char a[20]=原创 2011-10-03 11:00:55 · 2431 阅读 · 0 评论 -
sleep()函数-延迟函数
<br /><br />Sleep函数<br />1.简介<br />函数名: sleep<br />功 能: 执行挂起一段时间<br />用 法: unsigned sleep(unsigned seconds);<br />在VC中使用带上头文件<br />#include <windows.h><br />在gcc编译器中,使用的头文件因gcc版本的不同而不同<br />#include <unistd.h><br />2.注意<br />在VC中Sleep中的第一个英文字符为大写的"S"<br />转载 2011-05-24 13:40:00 · 6733 阅读 · 3 评论 -
linux下错误的捕获:errno和strerror的使用
linux下错误的捕获:errno和strerror的使用经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量转载 2011-09-25 15:43:15 · 40794 阅读 · 4 评论 -
GNU C的扩展
列举了GNU C中扩张的一些特性原创 2012-12-15 19:07:31 · 4428 阅读 · 0 评论 -
linux C函数之stat函数
linuxC函数之stat函数1.函数功能:通过文件名filename获取文件信息,并保存在buf所指的结构体stat中2.函数原型1)函数头文件#include #include 2)函数int stat(const char *file_name, struct stat *buf )3)返回返回值: 执行成功则返回0,失败返回-1,错误代码存于errno错误代码:ENOENT原创 2013-09-14 23:09:05 · 29992 阅读 · 3 评论 -
linux C函数之access函数的用法
1.函数功能:检查调用进程是否可以对指定的文件执行某种操作。2.函数原型:1)函数头文件#include #include 2)函数int access(const char * pathname, int mode)3)形参pathname:需要检测的文件路劲名mode:需要测试的操作模式。4)函数返回值说明成功执行时,返回0。失败返回-1,errno被设为以下的某个值 EINVAL: 模式原创 2013-09-15 18:04:44 · 97086 阅读 · 6 评论 -
EINTR error
总结:本问介绍了EINTR错误产生的原因,以及如何解决,并在最后给出一个实例,通过该实例可以解决调用ioctl产生的EINTR错误。原创 2013-09-14 22:58:05 · 11733 阅读 · 1 评论 -
linux C函数之strdup函数分析
linux C函数之strdup函数分析一.函数分析1.函数原型:#include char *strdup(const char *s); 2.功能:strdup()函数主要是拷贝字符串s的一个副本,由函数返回值返回,这个副本有自己的内存空间,和s没有关联。strdup函数复制一个字符串,使用完后,要使用delete函数删除在函数中动态申请的内存,strdup函数的参数不能为NULL,一旦为原创 2013-10-16 19:17:23 · 28935 阅读 · 3 评论 -
Linux C之atio()函数
Linux C之atio()函数1.首先man下 ATOI(3) Linux Programmer's Manual ATOI(3)NAME atoi, atol,atoll, atoq - convert a string to原创 2011-10-05 10:14:19 · 14421 阅读 · 0 评论 -
Linxu之静态库生成和使用
Linux下静态库生成和使用一.静态库概念1.库是预编译的目标文件(object files)的集合,它们可以被链接进程序。静态库以后缀为”.a”的特殊的存档(archive file)存储。2.标准系统库可在目录/usr/lib与/lib中找到。比如,在类Unix系统中C语言的数序库一般存储为文件/usr/lib/libm.a。该库中函数的原型声明在头文件/usr/include/math.h原创 2011-11-18 21:00:30 · 5118 阅读 · 8 评论 -
Linux进程学习二
fork()和vfork()的学习通过 上一部分的学习,我们了解了进程的概念以及在Linux中进程的实现,此部分我们将具体学习如何在Linux中创建一个进程。一前言:通过原理知识的学习,我们知道每个进程由进程ID号标识。进程被创建时系统会为其分配一个唯一的进程ID号。当一个进程向其父进程(创建该进程的进程)传递其终止消息时,意味这个进程的整个生命周期结束。此时,该进程占用的所用资源包括进程ID被全部释放。那么在Linux中如何创建一个进程呢?创建进程有两种方式:一是由原创 2010-11-13 14:45:00 · 4438 阅读 · 6 评论 -
Linux 之文件编程(一)
Linux中文件编程的基本知识以前看一个朋友的博客,其中有一句话很犀利:“Linux 下皆文件”,短短五个字就说出了文件系统在Linux下的重要性。在Linux操作系统中,它对一切资源的管理归根到底最后都是对文件的操作。一.前言:在原理课上,我们就知道操作系统的五大供能之一就是对文件的管理.那么为什么要引入文件管理的功能呢,它的主要任务是什么呢?我们先看看它出现的 背景吧在现代操作系统中,要利用大量的程序和数据,由于内存容量有限,且不能长期保存,于是人们想出了把这些数据以文件的形式放原创 2010-11-15 23:45:00 · 2760 阅读 · 0 评论 -
Linux进程学习五
等待进程结束wait()和waitpid()函数上一节最后我们讲到了若子进程先于父进程结束时,父进程调用wait()函数和不掉用wait()函数会产生两中结果:如果父进程没有调用wait()和waitpid()函数,子进程就会进入僵死状态。如果父进程调用了wait()和waitpid()函数,就不会使子进程变为僵尸进程。这是为什么呢?现在我们来深入学习wait()函数和waitpid()函数。一.wait()和waitpid()学习1.首先我们先看一下它们的函数原型:在终端输出命令:man 2 wait原创 2010-11-14 11:20:00 · 2670 阅读 · 0 评论 -
Linux进程学习之exit()和_exit()函数
exit()和_exit()函数 进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢。 进程退出 1.在Linux中任何让一个进程退出 进程退出表示进程即将结束。在Linux原创 2010-11-26 10:06:00 · 8161 阅读 · 1 评论 -
Linux文件夹和文件权限
drwxr-x--- 46 jibo jibo 4096 2012-05-31 17:57 _src分别对应的是:文件属性连接数文件拥有者所属群组文件大小文件修改时间文件名这里r是可读,w可写,x 可执行,其中文件属性分为四段,---- --- --- 10个位置例如: d rwx r-x r-x 第一个字符指定了文件类型。在通常意义上,一个目录也是一个文件。如果第一个字符是横线,表示原创 2012-05-31 18:21:42 · 1844 阅读 · 0 评论 -
linux系统中如何通过程序来获知系统信息
linux系统中如何通过程序来获知系统信息 最近在做一个项目,遇到要在程序中动态的获取设备硬件信息。纠结了我很长时间,今天突然发现原来在linux中有API函数直接就可以实现。对于好东西,当然要和大家share下了。一.uname()函数1.使用uname函数来实现获取原创 2011-09-23 09:42:46 · 2657 阅读 · 2 评论 -
Linux之C语言中如何抛出异常或将异常写入日志文件中
Linux中用C语言写系统日志__________________________________________________________________________________________________Author:冀博Time :2011/11/24Emaile:jibo.tiger@gmail.com声明:本人不反对别人和团体转载本人文章,但请注明出处,3Q。对本文有任原创 2011-11-24 16:33:53 · 11344 阅读 · 8 评论 -
Linux之动态库的创建和使用
Linux下动态库生成和使用一.动态库的基本概念1.动态链接库是程序运行时加载的库,当动态链接库正确安装后,所有的程序都可以使用动态库来运行程序。动态链接库是目标文件的集合,目标文件在动态链接库中的组织方式是按照特殊方式形成的。库中函数和变量的地址是相对地址,不是绝对地址,其真实地址在调用动态库的程序加载时形成。2.动态链接库的名称有别名(soname), 真名(realname)和链接名(lin原创 2011-11-20 09:45:29 · 11665 阅读 · 4 评论 -
Linux进程学习三
孤儿进程和守护进程通过前面的学习我们了解了如何通过fork()函数和vfork()函数来创建一个进程。现在 我们继续深入来学习两个特殊的进程:孤儿进程和守护进程一.孤儿进程1.什么是 孤儿进程如果一个子进程的父进程先于子进程 结束, 子进程就成为一个孤儿进程,它由 init 进程收养,成为 init 进程的子进程。2.那么如何让一个进程变为一个孤儿进程呢?我们可以先创建一个进程,然后杀死其父进程,则其就变成了孤儿进程。pid = fork();if(pid >原创 2010-11-13 16:24:00 · 2650 阅读 · 0 评论 -
Linux进程学习四
exit()和_exit()函数进程就好比人一样有其生命,我们通过fork()函数来创建一个进程,那么我们又是如何来中止进程呢。进程退出1.在Linux中任何让一个进程退出进程退出表示进程即将结束。在Linux中进程退出分为了正常退出和异常退出两种。1>正常退出a. 在main()函数中执行return 。b.调用exit()函数c.调用_exit()函数2>异常退出a.调用about函数b.进程收到某个信号,而该信号使原创 2010-11-13 21:06:00 · 4390 阅读 · 0 评论 -
Linux 之文件编程(三)
Linux之文件编程中软链接和硬链接的用法和区别前言:在Linux中使用什么来识别一个文件呢?我们先在终端上输入命令: ls -i 看看会有什么信息出现。think@ubuntu:~$ ls -i显示的信息1048577 bin 523 initrd.img 524289 mnt 1 sys1179649 boot 13 initrd.img.old 655361 opt 793170 可以看到每个文件前都有一个原创 2010-11-16 17:41:00 · 2412 阅读 · 0 评论 -
Linux 之文件编程(二)
Linux文件的访问权限及其控制前面我们曾经说过,文件系统要实现对文件的保护,那么它是如何实现的呢?它主要是通过对用户访问权限的控制。现在我们再来看一下我们上次所说的通过shell命令" ls" 来查看文件的属性时所出现的一串字符代表什么意思。drwxr-xr-x 3 root root 4096 2010-08-02 14:18 .drwxr-xr-x 48 ryan r原创 2010-11-16 14:51:00 · 3485 阅读 · 1 评论 -
Linux进程学习六
进程控制函数之exec()函数的学习当我们看中国的恐怖片时,经常会看到这样的场景:当一个人被鬼上身后,这个人的身体表面上还和以前一样,但是他的灵魂和思想已经被占有了--那么在进程中也有这样的情景。那么是如何实现的呢?现在我们来学习exec()函数族一.exec()函数族1. 首先我们在终端输入命令:man exec 可以看到函数的原型:#include int execl(const char*pathname, const char *arg0, ..., /* (char *) 0*/);in原创 2010-11-14 18:06:00 · 2751 阅读 · 1 评论 -
多线程编程-线程的创建和终止
转载:http://software.intel.com/zh-cn/blogs/2011/09/22/400007583/1.引言:Linux系统下的多线程遵循POSIX线程接口,称为pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用转载 2011-09-26 13:29:30 · 2246 阅读 · 0 评论 -
Linux进程学习一
Linux进程的基本知识和实现最近一周学习了Linux 进程编程的知识,现对其总结如下。在第一部分中我们先对进程的基本概念以及在Linux 中是如何来现实进程的进行介绍Tiger-John说明 :许多人在学习中只注重如何编程,却忘了注重原理,不去深究其基本原理。其实操作系统的原理就好 比金庸武侠小说的内功一样,而所有的具体实现如:Linux操作系统,uc/os操作系统都只是武功招式而已。如果我们内功学的很好的话,再来学习具体的实现过程是很快的。而且也会对其知识有更加本质的了原创 2010-11-13 13:01:00 · 5589 阅读 · 4 评论