Linux
文章平均质量分 66
dz小伟
dz小伟
展开
-
Linux文件
1、创建文件1.1、API1.int open(const char*pathname,int flags)2.int open(const char*pathname,int flags,mode_t mode)3.int creat(const char*pathname,mode_t mode)原创 2020-12-18 15:41:07 · 215 阅读 · 2 评论 -
Linux命令
目录1、VI2、编译及运行程序3、Linux1、VI1.vi C文件进入编辑器。C文件名可以是新建的可以是现有的。2.i看到insert就可以编辑命令行模式进入输入模式进入编辑器默认命令行模式3.esc输入模式退回命令行模式insert消失4.:wqw保存q退出保存并退出vi2、编译及运行程序1.gcc C文件 -o 程序名编译c文件2. ./程序名执行程序3、Linux1.ls列出当前文件夹下所有文件(-a隐藏文件也列出)2.pwd显示当前在哪个文件夹原创 2020-12-13 18:16:33 · 342 阅读 · 3 评论 -
UNIX环境高级编程
目录1、各个文件内容1、各个文件内容passwd登录口令文件通常在/etc/passwd由7个冒号分隔的字段组成,依次是:登录名,加密口令,数字用户ID,数字组,注释字段,起始目录(/home/xw)以及shell程序(/bin/bash)xw:x:1000:1000:ubuntu18-04,,,:/home/xw:/bin/bash...原创 2021-03-20 15:16:56 · 99 阅读 · 0 评论 -
树莓派Linux源码配置 内核编译
目录1、交叉编译工具链安装2、配置config3、编译内核4、挂载SD卡5、启动树莓派1、交叉编译工具链安装参考博文:交叉编译工具链安装2、配置config树莓派3的工程是bcm2709_defconfig使用源码里自带的configARCH=arm CROSS_COMPILE=arm-linux-gnueabihf- KERNEL=kernel7 make bcm2709_defconfig用menuconfig配置需要的东西,配置内核ARCH=arm CROSS_COMPILE=arm原创 2021-02-09 13:52:40 · 407 阅读 · 1 评论 -
ftp云盘(socket网络,共享内存)
目录1、功能2、API3、实现思路4、代码展示服务端客户端头文件1、功能客户端可以往服务端,上传、下载、查看、删除文件和博文:ftp云盘功能一样在博文ftp云盘的基础上服务端增加了共享内存2、API共享内存的相关API:进程间通信memset//初始化memcpy//拷贝memcmp//比较,比较对象可以是结构体3、实现思路服务端:1.socket等待连接,连接成功fork进程2.父进程运行程序ser13.子进程连接2个共享内存,接收客户端socket发来的指令并通过共享内存1原创 2021-01-31 14:52:21 · 1000 阅读 · 0 评论 -
Linux修改文件属性
有时候把共享文件夹下的.c文件,拷贝过来会有可执行属性,文件颜色也是绿色,如果文件多了很难辨别哪个是编译后的程序。可以去除文件的可执行属性,让它变灰色,就很好辨认了1、用户Linux下用户分为3种,owner/group/other,即文件拥有者,同用户组,和其他人。2、修改属性命令 用户 属性 文件命令:chmod用户:u代表owner,g代表group,o代表other,a代表所有即以上三者,可以是多个属性:前面+代表加属性,-代表去除属性,也可以是多个文件:操作的文原创 2021-01-18 11:31:59 · 323 阅读 · 0 评论 -
树莓派内核驱动编写——添加与调用
目录1、应用驱动硬件的流程1、应用驱动硬件的流程APP-》C library调用open产生软中断系统调用,中断号0x80-》汇编sys_call-》VFS的sys_open-》内核空间,设备驱动的open-》硬件原创 2021-01-16 14:11:28 · 1020 阅读 · 0 评论 -
Linux内核结构
目录1、用户级2、内核级3、硬件级4、内核结构框图1、用户级1.应用程序:基础C+C库app:ftp,网络,界面,线程,文件等2.C库:提供应用程序支配内核的接口(系统调用接口)open,read,fork,socket等3.shell:命令解释器,提供用户与内核进行交互操作的一种接口ls,rm等2、内核级1.VFS:虚拟文件系统,C库调用系统调用接口支配内核sys_open sys_read sys_wride2.内核:线程,网络,进程,内存,设备驱动(支配硬件)3、硬件级1.C原创 2021-01-14 13:52:31 · 196 阅读 · 0 评论 -
Linux文件系统
目录1、文件系统是什么2、文件系统的种类3、什么是分区4、文件系统目录结构4、虚拟文件系统(vfs)1、文件系统是什么1.操作系统用于明确存储设备组织文件的方法2.就是文件管理系统(程序),简称文件系统2、文件系统的种类参考文章:文件系统NTFS:window的文件系统,基于安全性的文件系统CDFS:光盘的文件系统exFAT:适合于闪存的文件系统(U盘)RAW:未经处理或未格式化产生的文件系统Linux/树莓派下的文件系统vfat:boot(bootloadder,kernel)ex原创 2021-01-13 14:53:36 · 179 阅读 · 1 评论 -
VMware下搭建ubuntu和安装tools
目录一、虚拟机下安装ubuntu二、安装vim,gcc等工具一、虚拟机下安装ubuntu1.下载ubuntu映像文件 xxx.iso2.选择自定义安装3.选择映像文件4.填写用户名密码5.选择安装位置,建议空间大的盘6.配置处理器,内存7.网络选择桥接模式8.后面全部推荐,下一步一直到完成9.启动ubuntu二、安装vim,gcc等工具安装过程中可能会出现的问题报错:Unable to correct problems,you have held broke packages原创 2021-01-11 18:50:07 · 567 阅读 · 1 评论 -
Linux链接
目录1、软链接2、硬链接1、软链接1.类似window的快捷方式2.在符合链接中,文件实际是一个文本文件,其中包含另一个文件的位置信息3.选定的位置上生成一个文件镜像,不会占用磁盘空间4.不同目录使用相同文件可以使用,或被链接的文件不容易记忆生成方式:ln -s libwiringPi.so.2.50 libwiringPi.so命令 参数 被链接的文件 软连接的文件名2、硬链接1.生成一个和源文件大小相同的文件2.防止误删,因为只有当所以链接删除才会被释放生成方式:ln libw原创 2021-01-10 16:47:26 · 159 阅读 · 1 评论 -
Linux交叉编译——树莓派工具链安装
目录1、下载地址2、Linux下安装3、配置环境变量1、下载地址树莓派工具链2、Linux下安装1.解压文件命令:unzip tools-master.zip(压缩包文件名)2.进入目录cd tools-master/arm-bcm2708/3.选择32位还是64位4.进入目录(x64)cd gcc-linaro-arm-linux-gnueabihf-raspbian-x64/bin/5.软连接输入命令:ls -l输入arm-linux-gnueabihf-gcc 转到后原创 2021-01-10 14:47:00 · 669 阅读 · 0 评论 -
Linux交叉编译——概念
目录1、什么是交叉编译2、为什么要用3、交叉编译工具1、什么是交叉编译一个平台上生成另一个平台上的可执行代码例如:window上用kell编译c51,生成的可执行代码xxx.hex在单片机上运行2、为什么要用1.目标平台上无法安装编译器2.目的平台未建立,要交叉编译生成bootloader(启动引导代码)以及操作系统核心宿主机:编辑和编译程序的平台目标机:用户开发的系统,比如RAM平台3、交叉编译工具交叉编译器,交叉编译工具链师承上官可编程 —— 陈立臣...原创 2021-01-10 13:46:17 · 384 阅读 · 0 评论 -
Linux恢复文件
目录1、找到分区2、进入管理员模式3、打开分区4、找到要恢复的文件5、logdump出2个数6、恢复文件1、找到分区输入命令df -T第3行/dev/sda5就是分区2、进入管理员模式输入命令sudo su提示输入用户密码输入密码进入管理员模式3、打开分区1.输入命令debugfs2.进入debugfs,然后open刚才的分区4、找到要恢复的文件ls -d 文件目录5、logdump出2个数logdump -i 要恢复的文件输出block和offset6、恢复文件原创 2021-01-09 14:58:25 · 1633 阅读 · 0 评论 -
Linux库
目录1、库是什么2、库分类2.1静态库2.2动态库3、库的优缺点1、库是什么功能函数整合成一个库,库包含了编译好的代码和数据,方便使用程序函数库分为:静态库,动态库,共享库2、库分类2.1静态库程序执行前,就编译加入到目标程序里了用gcc编译,在gcc后用-l来指定这个库函数不想让人看到源代码,可以使用静态库2.2动态库程序执行时,由目标程序去调用3、库的优缺点静态库优点:1.运行快2.发布程序无需提供静态库,因为已经在程序中(app中),移植方便缺点:1.程序原创 2021-01-09 09:52:18 · 195 阅读 · 4 评论 -
Linux进程间通信
1、通信技术IPC(InterProcess Communication)1.IPC方式有:*管道(包括无名管道和命名管道)*消息队列*信号量*共享存储*Socket*StreamsSocket和Streams支持多机通信原创 2020-12-24 08:55:31 · 641 阅读 · 2 评论 -
Linux进程
1、相关命令1.查看进程中是否存在某个进程例:cp -aux|grep init2.类似Windows任务管理器命令:top2、进程标识符1.每个进程都有一个标识符(非负整数)Pid=0:交换进程,进程调度(某一时刻哪个进程来跑,CPU,内存,网络)Pid=1:init进程(初始化进程,开机启动进程)2.获取进程标识符(是int类型)函数:自身进程标识符:getpid()父进程进程标识符geippid()例:pid_t pidpid=geipid()3、c程序的存储空间分配1原创 2020-12-21 14:42:01 · 248 阅读 · 1 评论 -
linux网络——ftp云盘
目录1、功能1.1服务端1.2客户端2、相关API2.1初始化变量memset2.2判断文件是否存在access2.3执行系统命令popen3、实现思路4、代码展示1、功能1.1服务端1.接收客户端指令,实现如下的操作:ls,rm,cd,pwd上传和下载文件操作(get,put)断开连接quit1.2客户端1.给服务器发送指令,实现相关操作ls,rm,cd,pwd,get,put2.客户端自身指令lls,lrm,lcd,lpwd3.退出程序指令quit2、相关API2.1初始化变原创 2021-01-06 12:11:32 · 717 阅读 · 5 评论 -
Linux网络编程
1、网络协议原创 2020-12-30 21:58:54 · 456 阅读 · 0 评论 -
Linux下测试
例1.编写程序用完整main参数1:执行次数,用atoi转整型for循环执行程序,用system2.编译,执行执行上面的程序./a.out 10 >>text.ret.txt &3.执行结果放入了文件里原创 2020-12-30 09:50:44 · 148 阅读 · 0 评论 -
Linux线程
1.用指令kill -l,查看信号名称和编号2.忽略,捕捉,系统默认信号3.使用例:杀死进程kill -信号编号 进程pid原创 2020-12-25 13:04:36 · 319 阅读 · 0 评论