Linux编程
本专栏是Linux相关的知识总结
正在起飞的蜗牛
这个作者很懒,什么都没留下…
展开
-
应用程序操作LCD源码分析
1、LCD设备节点文件介绍帧缓冲设备对应的设备文件为/dev/fb*,linux最多支持32个帧缓冲设备,分别为/dev/fb0到/dev/fb31,而/dev/fb是当前默认的帧缓冲设备,通常指向/dev/fb0;2、操作LCD的逻辑流程分析(1)使用open函数打开LCD设备的设备节点文件;(2)调用ioctl函数获取LCD设备的信息;(3)调用mmap函数,映射帧缓冲区到用户空间;(4)将要显示的内容写入到帧缓冲区;3、应用操作LCD设备的源码#include <stdi原创 2022-05-22 12:59:48 · 617 阅读 · 0 评论 -
select( )、poll( )、epoll( )函数详解
1、slect()函数1.1、函数原型 #include <sys/time.h> int select(int maxfdp, fd_set* readfds, fd_set* writefds, fd_set* errorfds, struct timeval* timeout);(1)maxfdp:指集合中所有文件描述符的范围,即所有文件描述符的最大值加1,不能错;(2)readfds:要监视读操作的文件描述符集合;(3)writefds:要监视写操作的文件描述符集合;原创 2022-05-10 23:10:33 · 1313 阅读 · 0 评论 -
查看进程中打开的文件描述符
前言在调试程序时,有时候想要知道当前程序打开了哪些文件,一种是从代码中分析程序打开了哪些文件,另一种就是通过通过linux的虚拟系统查询进程打开了哪些文件;确定进程号:ps -auxroot@ubuntu:~/dai_zhi_xin/kernel/jiuding_kernel/kernel# ps -auxUSER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMANDroot 1 0.0 0.原创 2022-05-03 19:34:14 · 2344 阅读 · 0 评论 -
静态库和动态库介绍以及Makefile
1、库文件介绍(1)库文件的提供方式:静态库/动态库 + 头文件说明。其中头文件是说明静态库/动态库里都实现了哪些函数,就好像是库的说明书一样,使用库的开发者需要根据头文件来使用库;(2)库文件的实质:就是将很多.o文件打包在一起。其中涉及到程序的预编译、编译、汇编、链接等过程,.o文件就是只编译不链接的文件;2、库文件的作用1.加快项目开发:库文件可以将大工程划分为一个一个的模块,每个模块的代码以库的形式提供,库与库之间只需要提前商定好交互头文件,然后每个库的开发人员就按照头文件进行同步开发原创 2022-03-27 21:05:03 · 3514 阅读 · 2 评论 -
cd命令、pwd命令和环境变量PWD、OLDPWD的关联
1、cd命令cd命令这里不多介绍,“cd -”命令是返回上次所在的目录。2、PWD和OLDPWD环境变量dai@ubuntu:~$ env······PWD=/home/daiOLDPWD=/······dai@ubuntu:~$ 3、关联(1)当你输入“cd -”命令返回上次的目录时,你上次所在目录时保存在OLDPWD环境变量里的;(2)当你输入pwd命令显示当前路径时,你当前所在路径是保存在PWD环境变量里的;......原创 2022-03-15 23:37:18 · 2576 阅读 · 0 评论 -
Linux系统查看环境变量(env命令)
env命令linux系统中的环境变量是很多的,就算是一些常用的环境变量我们也不一定能记得全名。env命令可以显示当前操作系统所有的环境变量,下面的示例代码是Ubuntu系统的。示例dai@ubuntu:~$ envUSER=daiXDG_SESSION_PATH=/org/freedesktop/DisplayManager/Session0XDG_SEAT_PATH=/org/freedesktop/DisplayManager/Seat0SSH_AUTH_SOCK=/run/user/原创 2022-03-15 23:23:55 · 15139 阅读 · 0 评论 -
嵌入式设备查看系统的版本、编译时间、架构等信息(uname命令)
前言在uname命令示例dai@ubuntu:~$ uname -aLinux ubuntu 3.13.0-32-generic #57-Ubuntu SMP Tue Jul 15 03:51:12 UTC 2014 i686 i686 i686 GNU/Linuxdai@ubuntu:~$ dai@ubuntu:~$ uname -nubuntudai@ubuntu:~$ dai@ubuntu:~$ uname -r3.13.0-32-genericdai@ubuntu:~$原创 2022-03-14 23:26:22 · 2281 阅读 · 0 评论 -
嵌入式开发——brctl命令实现桥接上网
1、桥接方式和NAT方式上网参考博客:《虚拟机上网设置——桥接模式 & NAT模式》。2、添加默认网关route add default gw 192.168.43.13、桥接方式上网brctl addbr br0 (建立一个逻辑网段,名称为br0)brctl addif br0 eth0 (让eth0成为br0的一个端口)brctl addif br0 eth1 (让eth1成为br0的一个端口)ifconfig eth0 0.原创 2022-03-13 15:31:42 · 2796 阅读 · 0 评论 -
为什么新创建的进程会默认打开0、1、2文件描述符?
前言每个进程都会默认打开3个文件描述符,即0、1、2。其中0代表标准输入流、1代表标准输出流、2代表标准错误流。在编程中通常使用宏STDIN_FILENO、STDOUT_FILENO和STDERR_FILENO分别来代表0,1,2。linux中的进程都是如何诞生的?新的进程是已经产生的进程通过fork()函数产生的,而所有用户态进程的祖宗进程是init进程(pid=1)。换句话说,内核中用户态的进程都是init进程直接/间接产生的,而子进程会继承父进程的文件描述符。在init进程中打开了0、1、原创 2022-01-11 23:52:02 · 1011 阅读 · 0 评论 -
Linux内核的0、1、2号进程
1、进程的创建rest_init()函数会创建三个内核线程,分别是idle进程(pid=0)、init进程(pid=1)、kthreadd进程(pid=2),不清楚rest_init()函数的2、idle进程idle进程是rest_init()函数通过调用cpu_idle()转变的,cpu_idle()函数里面是一个死循环,循环里会做一些内核的处理。3、kthreadd进程kernel_thread(kthreadd, NULL, CLONE_FS | CLONE_FILES);kt原创 2022-01-11 23:49:25 · 1214 阅读 · 0 评论 -
Linux中查看文件夹大小的命令
du -h在Linux中用"du -h"命令可以查看文件夹的大小,并且文件夹中的子文件夹大小也会显示出来。[root@x210v3 /]# lsSettings/ etc/ linuxrc@ mnt/ root/ sys/ var/bin/ home/ lost+found/ opt/ run@ tmp/dev/ lib/ media/ p原创 2022-01-03 20:32:10 · 8612 阅读 · 1 评论 -
如何快速确定程序的入口
前言在阅读代码时,知道程序的入口是十分重要的,应用程序(C语言)汇编+C语言原创 2021-12-27 23:07:11 · 2471 阅读 · 0 评论 -
gettimeofday函数与时区的关系 & 时区的修改
前言原创 2021-10-27 23:21:27 · 4025 阅读 · 4 评论 -
Linux终端实现回退键(backspace)删除错误输入的功能
都是原创 2021-10-05 16:25:46 · 4875 阅读 · 0 评论 -
Linux和Windows的换行兼容问题
https://blog.csdn.net/C_chuxin/article/details/84444807原创 2021-10-05 15:48:51 · 1904 阅读 · 0 评论 -
查看硬盘接口类型的指令:readlink
1. readlink /sys/block/sda…/devices/pci0000:00/0000:00:10.0/usb/target32:0:0/32:0:0:0/block/sda解析:命令返回的是sda硬盘的相关信息,其中usb字段表明这是usb接口的设备,即该设备是U盘。原创 2021-09-04 22:59:09 · 529 阅读 · 0 评论 -
Linux系统中关闭看门狗的指令
1.echo V >/dev/watchdog关掉看门狗原创 2021-09-04 22:54:06 · 5678 阅读 · 0 评论 -
Linux中设置和重启网络的命令
设置IP的命令重启网络的命令原创 2021-08-15 21:54:19 · 8930 阅读 · 0 评论 -
Linux中确认两份文件内容是否相同的方法:MD5值
什么是MD5值MD5值得正确怎么获取MD5值md5sum libry_traffic_rec_frame.a原创 2021-07-24 00:33:36 · 2018 阅读 · 0 评论 -
嵌入式开发中监视程序运行情况的方法
发多少原创 2021-06-14 00:38:14 · 424 阅读 · 1 评论 -
Linux系统中查看可执行程序的所在目录
前言在嵌入式开发中,有时候需要知道可执行程序的所在目录。在工作中,遇到一次定制开发,是集成对方公司的算法,对方要求把模型文件放到和可执行程序相同的目录下。当时完全不知道可执行程序在设备的哪个目录,因为没有遇到过也没有思考过这个问题。当时也没敢多问对方,不然显得太low。私下问前辈和查百度,用ps命令就可以看到可执行程序的所在目录。在终端输入ps命令:解析:第一列是进程id;第二列是所属用户;第三列是时间;第四列就是可执行程序所在目录。比如图中的dora和tts就是可执行程序,都放在设备的/us原创 2021-05-31 22:13:13 · 3279 阅读 · 0 评论 -
Linux中修改MAC地址和IP地址的命令(netset、ip、ifconfig)
修改MAC地址:在bash下,使用命令:ip link set eth0(网卡的设备名称) address aa:aa:aa:aa:aa:aa(mac地址)修改IP地址:netset 192.168.2.82 255.255.0.0 192.168.0.1原创 2021-04-27 13:20:45 · 6030 阅读 · 0 评论 -
errno和perror( )
errnoerrno是一个全局变量,当库函数出错时会设置errno的值为相应的错误码,然后用perror函数打印出来。perror函数原型:void perror(const char *s)参数可以写需要的打印信息,出错时会自动输出;用法:在库函数和系统函数出错时,调用该函数,会打印出错的原因。前提是出错的函数会修改errno的值,一般是库函数和系统函数,自己写的函数,此方法不可用。具体可以查看man手册中对函数返回值的说明。...原创 2020-10-08 03:19:51 · 407 阅读 · 0 评论 -
UDPclient
#include<arpa/inet.h>#include<stdio.h>#include<sys/socket.h>#include<unistd.h>#include<string.h>int main(){ //创建一个套接字文件描述符。(IPv4协议, UDP连接,默认0) int sock = socket(...原创 2020-03-18 07:09:56 · 714 阅读 · 0 评论 -
实际工作中的core文件设置以及使用
core 文件原创 2019-06-05 15:10:06 · 1231 阅读 · 1 评论 -
Linux文件编程常用函数详解——wait()函数
函数原型和头文件 #include <sys/types.h> #include <sys/wait.h> pid_t wait(int *status);wait() 函数说明原创 2019-06-05 13:01:29 · 442 阅读 · 0 评论 -
Linux文件编程常用函数详解——dup()和dup2()函数
函数原型和头文件原创 2019-06-01 14:56:26 · 278 阅读 · 0 评论 -
Linux文件编程常用函数详解——exit()和_exit()函数
两个函数的区别原创 2019-06-01 14:55:14 · 497 阅读 · 0 评论 -
Linux文件编程常用函数详解——fcntl()函数
fcntl()函数:#include <sys/types.h>#include <unistd.h>#include <fcntl.h>int fcntl(int filedes, int cmd,.../* int arg * / ) ;返回:若成功则依赖于cmd(见下),若出错为- 1常见用法:1.复制一个文件描述符;2.获取或者设置文件...原创 2019-06-01 14:49:22 · 552 阅读 · 0 评论 -
Linux文件编程常用函数详解——read()和write()函数
read()函数:#include <unistd.h>int read(int filedes, void *buff, int nbytes) ;//(文件描述符, 将读取的数据放到该地址, 将要读取的数据大小)返回:实际读到的字节数,若已到文件尾为0,若出错为- 1write()函数:#include <unistd.h>int write(int fi...原创 2019-05-31 22:16:10 · 1951 阅读 · 0 评论 -
Linux文件编程常用函数详解——lseek()函数
lseek()函数的头文件和形式:#include <sys/types.h>#include <unistd.h>off_t lseek(int filedes, off_t offset, int whence) ;lseek()函数的说明:打开的每个文件都有一个与其相关联的“当前文件位移量”。它是一个非负的整数,用以度量从文件开始处计算的字节数。通常,读......原创 2019-05-31 22:03:58 · 15530 阅读 · 0 评论 -
Linux文件编程常用函数详解——open()函数
open()函数介绍:1.open( )函数需要包含的头文件: #include<sys/types.h> #include<sys/stat.h> #include<fcntl.h>2.open()函数的形式: int open(const char* pathname, int oflag,.../*, mode_t mode * / ...原创 2019-05-31 21:35:30 · 1554 阅读 · 0 评论 -
Linux进程编程常用函数详解——vfork()和exec()函数
vfork()函数原型原创 2019-06-01 14:54:10 · 371 阅读 · 0 评论 -
Linux进程编程常用函数详解——fork()函数
函数添加头文件和原型原创 2019-06-01 14:52:57 · 205 阅读 · 0 评论