![](https://img-blog.csdnimg.cn/20201014180756927.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
Unix环境编程
文章平均质量分 50
梦幻贝壳
这个作者很懒,什么都没留下…
展开
-
初识systemd-使用篇
Linux操作系统的开机过程是这样的,即从BIOS开始,然后进入Boot Loader,再加载系统内核,然后内核进行初始化,最后启动初始化进程。初始化进程作为Linux系统的第一个进程,它需要完成Linux系统中相关的初始化工作,为用户提供合适的工作环境。RHEL 7、CentOS7等linux发行版系统已经替换掉了熟悉的初始化进程服务System V init,正式采用全新的systemd...转载 2019-10-22 11:27:10 · 991 阅读 · 0 评论 -
gcc中-pthread和-lpthread的区别
最近在使用linux mint15,里面自带的gcc时4.7的,当我编译多线程程序时,使用-lpthread居然说没有找到线程库函数!!!然后man了一下,才发现在gcc 4.7中链接线程库使用-pthread,而不是用-lpthread,为了搞清楚他们之间的区别,我进行了以下测试(测试方法我查找了好多网上的资料):用gcc编译使用了POSIX thread的程序时通常需要加额外的选项,...转载 2019-10-22 17:22:10 · 1124 阅读 · 0 评论 -
linux驱动系列之程序反汇编
参考网页:http://www.cppblog.com/liu1061/articles/53762.htmllinux下objdump命令常见用法举例:objdump -x obj:以某种分类信息的形式把目标文件的数据组成输出;<可查到该文件的的所有动态库>objdump -t obj:输出目标文件的符号表()objdump -h obj:输出目标文件的所有段概...转载 2019-10-22 17:21:06 · 252 阅读 · 0 评论 -
C 函数库 (libc,glibc,uClibc,newlib)
glibcglibc和libc都是Linux下的C函数库,libc是Linux下的ANSI C的函数库;glibc是Linux下的GUN C的函数库;GNU C是一种ANSI C的扩展实现。ANSI C是基本的C语言函数库,包含了C语言最基本的库函数。这个库可以根据 头文件划分为 15 个部分,其中包括:<asset.h>,<ctype.h>,<errn...转载 2019-10-22 17:16:19 · 256 阅读 · 0 评论 -
Linux驱动开发常用调试工具---之内存读写工具devmem和devkmem
版权声明:本文为博主原创文章 && 转载请著名出处 @ http://blog.csdn.net/gatieme https://blog.csdn.net/gatieme/article/details/50964903问题这段时间实验室要完成一个内存故障注入工具和寄存器故障注入工具,在编写驱动的过程中,调试起来很麻烦(一般都是printk打印出来的,调试起来太不方便),...转载 2019-03-18 22:43:45 · 339 阅读 · 0 评论 -
udev的实现原理 (转)
相对于linux来说,udev还是一个新事物。然而,尽管它03年才出现,尽管它很低调(J),但它无疑已经成为linux下不可或缺的组件了。udev是什么?它是如何实现的?最近研究Linux设备管理时,花了一些时间去研究udev的实现。udev是什么?u是指user space,dev是指device,udev是用户空间的设备驱动程序吗?最初我也这样认为,调试内核空间的程序要比调试...转载 2019-04-16 01:01:15 · 728 阅读 · 0 评论 -
hotplug_uevent机制_修改mdev配置支持U盘自动挂载学习笔记
1、接入U盘,看输出打印信息并分析(1)输出信息自动创建设备节点(2)用ls命令查看这里/dev/sda表示整个U盘,/dev/sda1表示这个U盘的第一个分区。(3)手动挂载,查看文件,手动卸载(把设备/dev/sda1挂载到目录/mnt目录下)2、想自动卸载和挂载(1)查看mdev(看它除了创建设备节点外,还做什么事情)查看mdev_main函数...转载 2019-04-16 01:15:14 · 483 阅读 · 0 评论 -
mdev支持热拔插,u盘自动挂载
使用命令:fdisk -l,查看系统硬盘和分区情况使用df查看挂载情况[root@iTOP-iMX6]# dfFilesystem 1K-blocks Used Available Use% Mounted on/dev/root 15017904 440472 13814552 3% /tmpfs ...转载 2019-04-16 01:19:07 · 897 阅读 · 0 评论 -
Tslib移植与分析
目标平台:LOONGSON-1B开发板(mips32指令集)编译平台:x86PC--VMware6.5--Ubuntu10.04(下面简称“ubuntu系统”)或:龙芯2F-debian6(下面简称“2F系统”)交叉工具链:gcc-3.4.6软件版本:Tslib1.40.简介(from 百度)嵌入式设备中触摸屏使用非常广泛,但触摸屏的坐标和屏的坐标是不对称的,需要...转载 2019-04-17 00:58:12 · 277 阅读 · 0 评论 -
地址转换函数:inet_aton & inet_ntoa & inet_addr和inet_pton & inet_ntop
在Unix网络编程中,我们常用到地址转换函数,它将ASCII字符串(如"206.62.226.33")与网络字节序的二进制值(这个值保存在套接口地址结构中)间进行地址的转换。 1、inet_aton、inet_addr和inet_ntoa在点分十进制数串(例如"206.62.226.33")与它的32位网络字节序二进制值间转换IPv4地址。 2、两个较新的函数:inet_pt...转载 2019-10-22 17:24:31 · 542 阅读 · 0 评论 -
Linux内核中双向链表的经典实现
概要前面一章"介绍双向链表并给出了C/C++/Java三种实现",本章继续对双向链表进行探讨,介绍的内容是Linux内核中双向链表的经典实现和用法。其中,也会涉及到Linux内核中非常常用的两个经典宏定义offsetof和container_of。内容包括:1.Linux中的两个经典宏定义2.Linux中双向链表的经典实现更多内容:数据结构与算法系列 目录...转载 2019-10-22 17:24:57 · 112 阅读 · 0 评论 -
eclipse gdb gdbserver 远程调试
我们在 Linux 主机中搭建我们的开发环境,使用 Ubuntu 10.04 LTS 为例。 搭建应用开发环境 安装 JREEclipse依赖于Java 环境,所以必须先安装 JRE 或 JDK。 安装 Eclipse 和 CDT去 Eclipse 官网下载最新的Eclipse IDE。我们一般选择 C/C++ 版本(Eclipse IDE for C/C++ Develo...转载 2018-07-25 01:01:52 · 3422 阅读 · 0 评论 -
linux-3.1.4下的驱动模块 "Unknown symbol in module" 问题(by liukun321咕唧咕唧)
在加载自己写的3.1.4内核的adc驱动时,频频出现下面的错误提示,以前在2.6.29的内核上从未碰到:[root@LK2440 drivers]# insmod /lib/modules/adc.ko adc: module license 'unspecified' taints kernel.Disabling lock debugging due to kernel taint转载 2016-11-18 16:32:09 · 829 阅读 · 0 评论 -
Linux系统函数open和close(04)---open函数错误信息获取
环境:Vmware Workstation;CentOS-6.4-x86_64查看官方文档,open函数返回值的说明:-1 if an error occurred (in which case, errno is set appro-priately)如果返回的是-1,那么errno就会被设置。也就是说,打开文件失败,那么错误信息就会被存放在errno中。说明:转载 2016-11-18 17:44:11 · 2442 阅读 · 0 评论 -
C语言strerror()函数:返回错误原因的描述字符串
头文件:#include 定义函数:char * strerror(int errnum);函数说明:strerror()用来依参数errnum 的错误代码来查询其错误原因的描述字符串, 然后将该字符串指针返回.返回值:返回描述错误原因的字符串指针.范例:/* 显示错误代码0 至9 的错误原因描述 */#include main(){ in转载 2016-11-18 18:10:27 · 986 阅读 · 0 评论 -
编译错误处理: warning: implicit declaration of function ‘close’ [-Wimplicit-function-declaration]
原来linux下面open和close是来源于不同的头文件:include <fcntl.h> // for openinclude <unistd.h> // for close原创 2016-11-18 17:55:14 · 9547 阅读 · 0 评论 -
驱动加载错误:insmod: error inserting 'hello.ko': -1 Device or resource busy
一:insmod时候错误:1:错误信息insmod: error inserting 'hello.ko': -1 Device or resource busy2:原因:你的代码里面的设备号和系统已经存在的相冲突3:查看系统的设备号:[csharp] view plain copy cat /proc/devices 查看和你的设转载 2016-11-18 15:36:06 · 1988 阅读 · 0 评论 -
android系统里的配置文件如何生效
一、android配置文件所在目录 android系统刚启动的时候会读取init.rc 文件来对android系统进行初始化,一般这个初始化文件在"system/core/rootdir"目录下maya@maya-g450:ls -l android-4.1.2/system/core/rootdir/-rw-r--r-- 1 maya root 2255原创 2017-04-20 20:33:11 · 1210 阅读 · 0 评论 -
read与sys_read的区别你真的理解了么?
sysfs是一个基于内存的文件系统,它的作用是将内核信息以文件的方式提供给用户程序使用。该文件系统的目录层次结构严格按照内核的数据结构组织。除了二进制文件外(只有特殊场合才使用),sysfs文件内容均以ASCII格式保存,且一个文件只保存一个数据,另外,一个文件不可大于一个内存页(通常为4096字节)。sysfs提供一种机制,使得可以显式的描述内核对象、对象属性及对象间关系。sysfs有两组接口,...转载 2018-04-27 15:21:43 · 1149 阅读 · 0 评论 -
linux下错误的捕获:errno和strerror的使用
经常在调用linux 系统api 的时候会出现一些错误,比方说使用open() write() creat()之类的函数有些时候会返回-1,也就是调用失败,这个时候往往需要知道失败的原因。这个时候使用errno这个全局变量就相当有用了。 在程序代码中包含 #include <errno.h>,然后每次程序调用失败的时候,系统会自动用用错误代码填充errno这个全局变量,这样你只需...转载 2018-04-27 15:32:03 · 249 阅读 · 0 评论 -
NFS使用方法
一、前言NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TCP/IP网络共享资源。在NFS的应用中,本地NFS的客户端应用可以透明地读写位于远端NFS服务器上的文件,就像访问本地文件一样。二、使用方法1.安装nfs输入命令:apt-get install nfs-kernel-server2.配置/etc/expor原创 2016-11-17 18:16:58 · 1893 阅读 · 0 评论