自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(28)
  • 资源 (2)
  • 收藏
  • 关注

转载 makefile 中 $@ $^ %< 使用

这篇文章介绍在LINUX下进行C语言编程所需要的基础知识。在这篇文章当中,我们将会学到以下内容:源程序编译Makefile的编写程序库的链接程序的调试头文件和系统求助1.源程序的编译在Linux下面,如果要编译一个C语言源程序,我们要使用GNU的gcc编译器。 下面我们以一个实例来说明如何使用gcc编译器。假设我们有下面一个非

2017-06-29 22:31:19 2384

转载 gdb用法

mickole@test:~/ctest/05gdb$ gdb simple //开始gdb调试 GNU gdb (Ubuntu/Linaro 7.4-2012.04-0ubuntu2.1) 7.4-2012.04 Copyright (C) 2012 Free Software Foundation, Inc. License GPLv3+: GNU GPL version 3 or

2017-06-27 16:05:08 320

转载 linux新定时器:timefd及相关操作函数

timerfd是Linux为用户程序提供的一个定时器接口。这个接口基于文件描述符,通过文件描述符的可读事件进行超时通知,所以能够被用于select/poll的应用场景。一,相关操作函数#include int timerfd_create(int clockid, int flags);int timerfd_settime(int fd, int flags, const s

2017-06-27 16:04:11 385

转载 利用backtrace和backtrace_symbols函数打印调用栈信息

在头文件"execinfo.h"中声明了三个函数用于获取当前线程的函数调用堆栈。#include  int backtrace(void **buffer, int size); char **backtrace_symbols(void *const *buffer, int size); void backtrace_symbols_fd(void *const *buffer

2017-06-27 16:03:12 837

转载 linux系统编程之管道(三):命令管道(FIFO)

linux系统编程之管道(三):命令管道(FIFO)一,匿名管道PIPE局限性管道的主要局限性正体现在它的特点上:只支持单向数据流;只能用于具有亲缘关系的进程之间;没有名字;管道的缓冲区是有限的(管道制存在于内存中,在管道创建时,为缓冲区分配一个页面大小);管道所传送的是无格式字节流,这就要求管道的读出方和写入方必须事先约定好数据的格式,比如多少字节算作一个消息(或

2017-06-27 16:02:31 344

转载 linux系统编程之管道(二):管道读写规则

一,管道读写规则当没有数据可读时O_NONBLOCK disable:read调用阻塞,即进程暂停执行,一直等到有数据来到为止。O_NONBLOCK enable:read调用返回-1,errno值为EAGAIN。当管道满的时候O_NONBLOCK disable: write调用阻塞,直到有进程读走数据O_NONBLOCK enable:调用返回-1,errno值为EAG

2017-06-27 16:01:34 753

转载 linux系统编程之管道(一):匿名管道(pipe)

一,什么是管道管道是Linux支持的最初Unix IPC形式之一,具有以下特点:管道是半双工的,数据只能向一个方向流动;需要双方通信时,需要建立起两个管道;只能用于父子进程或者兄弟进程之间(具有亲缘关系的进程);单独构成一种独立的文件系统:管道对于管道两端的进程而言,就是一个文件,但它不是普通的文件,它不属于某种文件系统,而是自立门户,单独构成一种文件系统,并且只存在与内存中。数据的读

2017-06-27 16:00:46 285

转载 linux系统编程之信号(八):三种时间结构及定时器setitimer()详解

一,三种时间结构time_t://seconds struct timeval {long tv_sec; /* seconds */long tv_usec; /* microseconds */}; struct timespec {time_t tv_sec; /* seconds */long tv_nsec; /* nanoseconds */

2017-06-27 15:57:46 3072

转载 linux系统编程之信号(七):被信号中断的系统调用和库函数处理方式

一些IO系统调用执行时, 如 read 等待输入期间, 如果收到一个信号,系统将中断read, 转而执行信号处理函数. 当信号处理返回后, 系统遇到了一个问题: 是重新开始这个系统调用, 还是让系统调用失败?早期UNIX系统的做法是, 中断系统调用, 并让系统调用失败, 比如read返回 -1, 同时设置 errno 为 EINTR中断了的系统调用是没有完成的调用, 它的失败是临时性的, 如果

2017-06-27 15:56:38 562

转载 linux系统编程之信号(六):信号发送函数sigqueue和信号安装函数sigaction

一,sigaction()#include  int sigaction(int signum,const struct sigaction *act,struct sigaction *oldact));sigaction函数用于改变进程接收到特定信号后的行为。该函数的第一个参数为信号的值,可以为除SIGKILL及SIGSTOP外的任何一个特定有效的信号(为这两个信号定义自己的处理函

2017-06-27 15:55:58 280

转载 linux系统编程之信号(五):信号集操作函数,信号阻塞与未决

一,信号集及相关操作函数信号集被定义为一种数据类型:typedef struct {                       unsigned long sig[_NSIG_WORDS];} sigset_t信号集用来描述信号的集合,每个信号占用一位(64位)。Linux所支持的所有信号可以全部或部分的出现在信号集中,主要与信号阻塞相关函数配合使用。下面是为信号集操作定义的

2017-06-27 15:54:47 207

转载 linux系统编程之信号(四):alarm和可重入函数

一,alarm()在将可重入函数之前我们先来了解下alarm()函数使用:#include unsigned int alarm(unsigned int seconds)系统调用alarm安排内核为调用进程在指定的seconds秒后发出一个SIGALRM的信号。如果指定的参数seconds为0,则不再发送 SIGALRM信号。后一次设定将取消前一次的设定。该调用返回值为上次定时调

2017-06-27 15:54:09 302

转载 linux系统编程之信号(三):信号安装、signal、kill,arise讲解

一,信号安装如果进程要处理某一信号,那么就要在进程中安装该信号。安装信号主要用来确定信号值及进程针对该信号值的动作之间的映射关系,即进程将要处理哪个信号;该信号被传递给进程时,将执行何种操作。linux主要有两个函数实现信号的安装:signal()、sigaction()。其中signal()只有两个参数,不支持信号传递信息,主要是用于前32种非实时信号的安装;而sigaction()是较

2017-06-27 15:53:24 691

转载 linux系统编程之信号(二):信号处理流程(产生、注册、注销、执行)

对于一个完整的信号生命周期(从信号发送到相应的处理函数执行完毕)来说,可以分为三个阶段:信号诞生信号在进程中注册信号在进程中的注销信号处理函数执行1    信号诞生    信号事件的发生有两个来源:硬件来源(比如我们按下了键盘或者其它硬件故障);软件来源,最常用发送信号的系统函数是kill, raise, alarm和setitimer以及sigqueue函数,软件来源还包

2017-06-27 15:51:41 777

转载 linux系统编程之信号(一):中断与信号

一,什么是中断?1.中断的基本概念中断是指计算机在执行期间,系统内发生任何非寻常的或非预期的急需处理事件,使得CPU暂时中断当前正在执行的程序而转去执行相应的事件处理程序,待处理完毕后又返回原来被中断处继续执行或调度新的进程执行的过程。引起中断发生的事件被称为中断源。中断源向CPU发出的请求中断处理信号称为中断请求,而CPU收到中断请求后转到相应的事件处理程序称为中断响应。

2017-06-27 15:48:57 6228

转载 守护进程详解及创建,daemon()使用

一,守护进程概述Linux Daemon(守护进程)是运行在后台的一种特殊进程。它独立于控制终端并且周期性地执行某种任务或等待处理某些发生的事件。它不需要用户输入就能运行而且提供某种服务,不是对整个系统就是对某个用户程序提供服务。Linux系统的大多数服务器就是通过守护进程实现的。常见的守护进程包括系统日志进程syslogd、 web服务器httpd、邮件服务器sendmail和数据库服务器m

2017-06-27 15:39:54 320

转载 GPS定位不准确、有偏差的问题

转自:http://blog.csdn.net/a_tu_/article/details/52948341GPS型号:SIMCOM7100C最近在做gps定位这块,发现经纬度定位并不准确,偏差的有点离谱。网上查了好多资料,各种坐标系之间相互转换。在地图上输入转换后的经纬度,偏的不是一点半点。后来发现是转换前的数据源需要转换。这是从gps模块获取到的源数据,它是属于地球

2017-06-27 14:09:52 11108

转载 ctrl+c不能终止进程(busybox提示can't access tty.job control

转自:http://linux.chinaunix.net/techdoc/develop/2007/11/05/971335.shtmlctrl+c不能终止进程(busybox提示can't access tty.job control在最近的一段时间中,发现在busybox下调试时,shell终端用ctrl+c不能终止掉正在运行的进程。参考了网上的一些网友的blog的解决方法以及自

2017-06-27 14:07:03 1196

转载 Linux c判断文件是否存在

转自:http://blog.csdn.net/kingjo002/article/details/8442146一、access函数功能描述: 检查调用进程是否可以对指定的文件执行某种操作。 用法: #include #include int access(const char *pathname, int mode); 参数: pathname:

2017-06-27 14:05:56 7772

转载 多文件目录下makefile文件递归执行编译所有c文件

首先说说本次嵌套执行makefile文件的目的:只需make根目录下的makefile文件,即可编译所有c文件,包括子目录下的。意义:自动化编译行为,以后编译自己的c文件时可把这些makefile文件直接复制到相应目录即可方便编译出所有文件。这些makefile文件是通用的,只需根据自己的工程情况改动少许内容即可。下面会说。总体思路是:把目标文件放在debug文件夹下的obj目录下

2017-06-26 14:35:37 669

转载 C语言函数返回类型为指针时的一些问题

1.先看程序:#includechar  *returnStr(){           char  *p = “tigerjibo”;           return  p;}int  main(){           char*str;           str =returnStr(); 

2017-06-21 14:09:15 267

转载 devfs、sysfs、udev介绍

devfs、sysfs、udev介绍一、devfsLinux下有专门的文件系统用来对设备进行管理,devfs和sysfs就是其中两种。在2.6内核以前一直使用的是devfs,devfs挂载于/dev目录下,提供了一种类似于文件的方法来管理位于/dev目录下的所有设备,我们知道/dev目录下的每一个文件都对应的是一个设备,至于当前该设备存在与否先且不论,而且这些特殊文件是位于根文件系统上的,

2017-06-16 17:04:46 400

转载 linux 的 dd命令详解,dd与cp的区别

注:dd操作的是磁盘的扇区字节,而cp是文件或目录,dd可以在磁盘中连续的读取从磁盘中10开始的位置读40个bs 到文本中从文件中读字节到磁盘中1.命令简介 dd 的主要选项:指定数字的地方若以下列字符结尾乘以相应的数字:b=512, c=1, k=1024, w=2, xm=number mif=file #

2017-06-14 13:49:15 3923

原创 linux 下的mount

linux一切皆文件,插入的磁盘或者u盘都会在/dev下生成设备文件sda, sdb, sdc等,sda,sdb,sdc指的是cherub的第几块stat设备(在linux下usb插拔设备也会被识别为stat设备),sda1...2 3, sdb1...2 3 等指的是具体的磁盘分区,u盘,sd卡等设备插入后会被自动挂载在 /media 目录下,并可以显示u盘图标u盘等的自动挂载可参考以下

2017-06-12 14:46:37 238

转载 tiny4412,将u-boot烧录到eMMC中并启动

转自:http://www.techbulo.com/1792.html最近看了U-BOOT部分,并根据友善的资料将U-BOOT烧写到SD卡上,由SD卡启动U-BOOT,启动界面如下:SD卡启动U-BOOT今天试着将U-BOOT烧写到eMMC中,emmc其实和SD卡类似,都是SD设备,emmc是8-bit模式,SD是4-bit模式。将U-

2017-06-11 16:41:08 2909

原创 Makefile 的核心内容

1.Makefile的规则```target... : prerequisites...command......`target就是一个目标文件,可以是object文件,也可以是可执行文件等,或者是一个标签(伪目标),command是需要执行的shell命令,cc, echo, mkdir ...target这一个或多个目标文件依赖于一个或多个 prerequisite

2017-06-11 11:08:41 369

原创 linux下安装pip

在命令行下输入(在root权限下)$ wget https://bootstrap.pypa.io/get-pip.py$ python get-pip.py$ pip -V  #查看pip版本

2017-06-05 18:46:24 445

转载 C/C++中可变参数的详细介绍(va_list,va_start,va_arg,va_end)

转自:http://www.jb51.net/article/41868.htm可变参数的函数原理其实很简单,而va系列是以宏定义来定义的,实现跟堆栈相关.我们写一个可变函数的C函数时,有利也有弊,所以在不必要的场合,我们无需用到可变参数。如果在C++里,我们应该利用C++的多态性来实现可变参数的功能,尽量避免用C语言的方式来实现由于在C语言中没有函数重

2017-06-05 17:33:33 761

Quectel_EC200S_Linux_USB_Driver_User_Guide_V1.0.pdf

移远EC200S linux USB 驱动配置

2021-04-19

DP83848C 数据手册

DP83848C芯片 数据手册

2019-04-15

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除