字符型设备驱动如何编译 [问题点数:20分]

Bbs1
本版专家分:0
结帖率 0%
Bbs1
本版专家分:0
Bbs1
本版专家分:0
Bbs6
本版专家分:6789
Blank
红花 2018年4月 硬件/嵌入开发大版内专家分月排行榜第一
Bbs1
本版专家分:40
Bbs1
本版专家分:20
Bbs1
本版专家分:0
如何编写字符设备驱动
0.包含必须的头文件 #include &amp;lt;linux/fs.h&amp;gt; #include &amp;lt;linux/cdev.h&amp;gt; #include &amp;lt;linux/slab.h&amp;gt; /*kfree ,kmalloc */ #include &amp;lt;linux/device.h&amp;gt; 1.编写<em>字符</em>设备函数 1.1、分配核心结构 struct cdev *cd...
简单Linux字符驱动
Linux驱动分为三种类<em>型</em>:<em>字符</em><em>型</em>驱动、块<em>设备驱动</em>和杂项网络<em>设备驱动</em>。其结构图如下 首先学习一下最简单的<em>字符</em><em>型</em>驱动的写法。 <em>字符</em>驱动是指只能一个字节一个字节读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后数据。<em>字符</em>设备是面向流的设备,常见的<em>字符</em>设备有鼠标、键盘、串口、控制台和LED设备等 如图,在Linux内核中使用cdev结构体来描述<em>字符</em>设
简单字符设备驱动程序
理论知识参考Linux Device Driver, 3rd Edition。实验中使用主动分配主设备号,按照LDD3中说的最好是自动分配设备号,这里只是为了理解。 实验步骤如下: (1)使用cat/proc/device查看<em>字符</em>设备主设备号,这里假设50主设备号没有使用而在本设备中使用。      创建<em>字符</em>设备文件节点:mknod/dev/mycdev c 50 0   
Nuttx学习笔记之板级设备驱动初始化
工具:FRDM-KL25Z开发板 问题:在调试PWM驱动的过程中一直无法找到设备节点。 1、查找pwm注册pwm_register的地方。 ->board_app_initialize() ->kl_pwm_setup() ->pwm_register() 2、发现board_app_initialize在这里被调用: #ifdef CONFIG_BOARD_INI
国内唯一系统教程资料Nuttx操作系统移植教程—PIXAWK飞控平台移植必备
我们筹备大半年之久的 Nuttx操作系统移植视频教程套件 终于在年前可以发布了 我们知道Ardupoilt固件和PX4固件的飞控系统都是基于Nuttx这个操作系统的,这个操作系统是一个类似LINUX的操作系统,具有非常好的实时性和可扩展性,在飞控这一类设备上对于操作系统的实时性要求比较高的场合,非常适用。 Nuttx是一个实时嵌入式操
字符设备驱动透彻分析(一)
 前言:    首先要说的是对于linux这样优秀的操作系统,我们在分析的时候一定是站在全局去对对待,而非一开始就去扣那些毛细血管的东西。我看到诸多博客对linux下的<em>字符</em><em>设备驱动</em>进行这样那样的描述,但是大多居于形式,告诉你这样或者那样操作。1.首先我们要谈的是linux下的贯穿始终的一句话“一切皆文件”,很多时候当你想不通的时候,想下这句话也许就豁然开朗,当然linux下的<em>字符</em><em>设备驱动</em>也是以文件...
注册字符设备驱动
   1,申请<em>字符</em>类设备号         (1)alloc_chrdev_region动态         (2)register_chrdev_region静态 2,注册<em>字符</em>类设备         (1)kmalloc   为reg_dev开空间                   清除reg_dev空间数据  清除结构体中.data中数据         (2)cdev_init   首先数...
Linux_编译内核并编写一个最基础的字符设备驱动程序
linux内核<em>编译</em>以及<em>字符</em><em>设备驱动</em>程序的编写 关键词: 内核<em>编译</em>; globalmem<em>字符</em><em>设备驱动</em>编写; linux; linux<em>设备驱动</em>编写; <em>字符</em><em>设备驱动</em>程序主要内容 虚拟内存设备globalmem驱动实现,编写程序,然后将生成的驱动模块插入到驱动之中,接着编写测试程序,对设备globalmem进行测试。(Copyright © http://blog.csdn.net/s_...
第一个字符驱动Makefile文件解析
<em>字符</em>驱动学习,驱动模块Makefile解析
关于linux设备驱动程序scull编译出问题
首先main.c函数中的config.h文件在2.6.19内核版本以后已经没有了取而代之的是linux/autoconf.h ,另外还需要在各个源文件中包含 &amp;lt;linux/sched.h&amp;gt;文件,最后一个问题是在access.c源文件中将 current-&amp;gt;uid 和current-&amp;gt;euid 这两个值全部替换为 current-&amp;gt;cred-&amp;gt;uid 和 curr...
字符设备驱动
一、<em>设备驱动</em>概述 linux内核的驱动模<em>型</em>为编写驱动提供了抽象,将驱动公共的部分提取了出去简化了驱动的编写工作,但是那并不是实际的驱动,如果要实现真正的驱动,还要给予驱动模<em>型</em>做一些其它的工作。根据外设和内核交互数据的方式,内核将驱动分成了几种类别。基本上设备可以分为两类,一类适合于面向<em>字符</em>的交换,一类适合于处理包含固定数目字节的数据块,这两类分别称为<em>字符</em>设备和块设备(网络设备是一种特殊的设备,它
linux设备驱动第三篇:写一个简单的字符设备驱动
在linux<em>设备驱动</em>第一篇:<em>设备驱动</em>程序简介中简单介绍了<em>字符</em>驱动,本篇简单介绍如何写一个简单的<em>字符</em><em>设备驱动</em>。本篇借鉴LDD中的源码,实现一个与硬件设备无关的<em>字符</em><em>设备驱动</em>,仅仅操作从内核中分配的一些内存。 下面就开始学习如何写一个简单的<em>字符</em><em>设备驱动</em>。首先我们来分解一下<em>字符</em><em>设备驱动</em>都有那些结构或者方法组成,也就是说实现一个可以使用的<em>字符</em><em>设备驱动</em>我们必须做些什么工作。 1、主设备号和次设备号 对于
字符设备驱动代码完整分析
1.<em>编译</em>、安装驱动程序 linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此<em>编译</em>、安装驱动程序实质是<em>编译</em>、安装内核模块memdev.c #include #include #include #include #include int
Linux字符设备驱动程序开发(1)-使用字符设备驱动
1、使用<em>字符</em><em>设备驱动</em>程序 1.1<em>编译</em>/安装驱动 在Linux系统中,驱动程序通常采用内核模块的程序结构来进行编码。因此,<em>编译</em>/安装一个驱动程序,其实质就是<em>编译</em>/安装一个内核模块。把下面的范例代码拷贝到Linux系统中: #include &lt;linux/module.h&gt; #include &lt;linux/fs.h&gt; #include &lt;linux/init.h&...
字符设备驱动模块与测试代码编写(转)
 <em>设备驱动</em>程序:以内核模块的形式存在也就是*.ko <em>设备驱动</em>程序和系统调用关系. 系统调用:应有程序和操作系统(内核) 之间的接口(应用程序与内核的交互) <em>设备驱动</em>程序:内核和设备硬件之间接口(内核与硬件的交互) 整个过程实现了应用程序间接访问了底层的硬件。 test.c中调用open-----》系统调用(sys_open())---file_operation{.open
字符设备驱动1
常用的模块操作命令 (1)lsmod(list module,将模块列表显示),功能是打印出当前内核中已经安装的模块列表 (2)insmod(install module,安装模块),功能是向当前内核中去安装一个模块,用法是insmod xxx.ko (3)modinfo(module information,模块信息),功能是打印出一个内核模块的自带信息。,用法是modinfo xxx.k...
字符驱动之:实现读写
在linux驱动中实现<em>字符</em>设备的读和写。
一步一步走进字符驱动--驱动编译
一步一步走进<em>字符</em>驱动--驱动<em>编译</em> 前言: 今天开始,我会逐步开始介绍<em>字符</em>驱动的编写,从<em>编译</em>开始,慢慢的直至后面的LED流水灯,DS18B20的驱动开发过程.这里讲述的一些驱动的信号量,轮训等都适用与其他驱动.后面会一一讲述. 本人也是菜鸟.写的不好的,希望能指出问题.谢谢大家.本系列主要讲的是关于<em>字符</em>驱动的开发方法及一些流程.由于我在学习<em>字符</em>驱动的时候走的很大的弯.希望在这留下一些脚印给喜欢
驱动的两种编译方法
静态<em>编译</em>      就是直接把驱动放到内核中,成为内核中的一部分。把写好的驱动源代码(led.c文件)放到,内核的<em>字符</em>驱动中(路径为:linux-2.6.32.2/drivers/char ),然后修改下配置;      第一部分要修改的是:Kconfig(vim linux-2.6.32.2/drivers/char/Kconfig)      往里面添加:      config MY
字符设备编译makefile
#AR = ar ARCH = arm CC = /opt/gcc-linaro-arm-linux-gnueabihf/bin/arm-linux-gnueabihf-gcc #DEBFLAGS=-O2 obj-m:=simple.o KERNELDIR?=/opt/workspace/zz/linux-nand-3.2.0 PWD     :=$(shell pwd) modul
linux字符设备驱动开发模板及Makefile
linux2.6<em>字符</em><em>设备驱动</em>开发模板 #include #include #include #include #include //=======================<em>字符</em><em>设备驱动</em>模板开始 ===========================// #define CHAR_DEV_DEVICE_NAME "char_dev" // 是应当连接到这个编号范围的设备的
驱动模块的编译与安装
驱动模块的<em>编译</em>与安装模块可以被选择“模块化<em>编译</em>”或“静态<em>编译</em>” 1. 分离式模块化<em>编译</em>:需要在内核运行时动态加载(也能实现开机加载 );非常适合驱动的开发与调试 2. 静态<em>编译</em>:链接入内核镜像,默认被加载;适合开发完成后在产品中使用 3. 统一式模块化<em>编译</em>:和内核一起<em>编译</em>,并统一输出到文件系统,在内核启动时统一开机加载 ;有利于实现开机加速
【转】面对不断升级的内核,如何学习linux设备驱动
来源:http://hi.baidu.com/mikenoodle/item/ea1db63e4f13360fcfb9fedb 面对不断升级的linux内核、GNU开发工具、linux环境下的各种图形库,很多linux应用程序开发人员和linux<em>设备驱动</em>开发人员即兴奋,又烦躁。兴奋的是新的软件软件、工具给我提供了更强大的功能,烦躁的是适应新软件的特性、搭建新环境是一项非常繁琐的事情。本文
最简单linux字符驱动程序及makefile
见下图
linux设备驱动makefile入门解析
linux<em>设备驱动</em>makefile入门解析 对于一个普通的linux<em>设备驱动</em>模块,以下是一个经典的makefile代码,使用下面这个makefile可以 完成大部分驱动的<em>编译</em>,使用时只需要修改一下要<em>编译</em>生成的驱动名称即可。只需修改obj-m的值。 ifneq ($(KERNELRELEASE),) obj-m:=hello.o else #generate the pa
第六章 字符设备
记录一下 建立一个简单的<em>字符</em>设备的编码过程前提准备:已经<em>编译</em>好的Linux内核进入../drivers/char/目录这里存放着这<em>字符</em><em>设备驱动</em>mkdir globalmem 创建一个我们新建驱动的目录并进入新建globalmem.c文件,清单如下#include &amp;lt;linux/module.h&amp;gt; #include &amp;lt;linux/fs.h&amp;gt; #include &amp;lt;linu...
如何将写好的驱动程序编译进内核
以按键驱动为例,驱动源代码为buttons_drv.c 1、进入目录linux-kernel-samsung-dev\drivers\char             新建目录key_arm,并将驱动程拷贝进去             mkdir key_drv     2、在key_arm目录里编写里Kconfig文件,内容如下:             menu "button dr
一个最简单的linux驱动程序的编译运行
一、背景知识 可装载内核模块:为了使系统功能能够更灵活的扩充,Linux支持内核的动态扩展,即在系统运行时给内核增加新的功能(即模块module)。 模块:模块(module)是一段可以被动态链接的目标代码(.ko),它可由insmod命令动态的装载并链接到正在运行的内核。链接后,它就成了内核的一部分,直到用rmmod命令解除链接并卸载。 Linux驱动程序就是一种特殊的可装载内核模块。
在linux下做一个操作系统课程设计,我先实验了一个简单的hello world程序,但是编译执行的时候提示没有那个文件或者目录
明明有这样的文件却显示没有这是什么问题? 还有使用vim编辑器的时候这是什么意思 没有那个包吗? 刚装了虚拟机什么的就遇到这样的问题好头疼 求大神指导一下
Linux下编译安装驱动的两种方式
linux <em>编译</em>安装驱动有两种,动态加载与静态加载 动态加载 一,<em>编译</em>,在指点内核树下<em>编译</em>,生成.o文件或.ko文件 二,将生成的.o或.ko文件拷到相应目录,一般是/lib/module/kernel下面 三,用insmod命令加载,用rmmod命令卸载 静态加载 静态加载主要就是<em>编译</em>内核。就是将编写好的驱动放进内核相应的目录下面。然后<em>编译</em>内核。然后运行<em>编译</em>好的内核。静态加载就是把驱动
编译驱动到内核的两种方式
<em>编译</em>驱动模块 有两种方法可以<em>编译</em>自己写的驱动程序。 第一种方法:直接加入内核 1. 将驱动程序放入内核相应的驱动文件夹,例如名字为my_led.c 2. 修改此驱动目录下的Kconfig文件,加入对该驱动文件的配置选项: config MY_LED bool "S3C2410 LED Driver"     depens on ARCH_S3C2410 help  LED dri
Linux字符设备驱动和杂项设备驱动对比
初学Linux驱动程序的时候,可能对什么是<em>字符</em><em>设备驱动</em>(char device)和杂项<em>设备驱动</em>(misc device)并不是很了解,更谈不上如何区分了。我自己当初在学习Linux<em>字符</em><em>设备驱动</em>的时候,也并没有特地去了解其两者之间的区别,尤其是在两种驱动设备注册的时候,没有意识到其不同之处,导致后来在项目中出现了很严重的问题,但却迟迟到找不到解决方案。所以今天就趁这个机会,好好分析一下两者之间的区别
Linux驱动学习笔记(2)----字符设备驱动基本框架
一个<em>字符</em><em>型</em><em>设备驱动</em>基本框架主要包括: 1. 设备结构体、全局变量的定义 2. 实现设备模块加载、卸载函数 3. 实现 fops 中操作设备相关的函数
嵌入式 字符驱动总结makefile和gcc编译驱动
1.linux 驱动总结 linux驱动接口里的_init _exit 其实就是宏。 linux驱动程序不能用GCC直接<em>编译</em>生成模块。要用makefile 如下: ifneq($(KERNELRELEASE),) obj-m:=hello.o else KERNELDIR:=lib/modules/$(shell uname -r)/build PWD:=$(pwd) all: $(MAKE) -
字符设备驱动
<em>字符</em>驱动编程模<em>型</em>: 1. 设备描述结构cdev     1.1  结构定义     1.2  设备号     1.3  设备操作集 在Linux系统中,设备的类<em>型</em>非常繁多,如:<em>字符</em>设备,块设备,网络接口设备,USB设备,PCI设备,平台设备,混杂设备……,而设备类<em>型</em>不同,也意味着其对应的驱动程序模<em>型</em>不同,这样就导致了我们需要去掌握众多的驱动程序模<em>型</em>。那么能不能从这些众多的驱动模<em>型</em>中提炼出
普通字符设备驱动的两种注册方式(新&旧)
普通<em>字符</em><em>设备驱动</em>的两种注册方式(新&旧)在内核中,对于一个普通的<em>字符</em><em>设备驱动</em>,不难发现有两种注册方式: register_chrdev族函数:这种方法是2.4版本流行的旧方法 register_chrdev_region族+cdev族+创建设备类、文件的函数:这种方法是2.6版本推荐的新方法
简单的LINUX字符设备驱动编译进Linux内核
简单的LINUX<em>字符</em><em>设备驱动</em>及<em>编译</em>进Linux内核…   2010-07-06 11:23:00|  分类: 嵌入式linux|举报|字号 订阅        下载LOFTER我的照片书  | 驱动代码:   #include #inc
Linux设备驱动字符设备驱动
一、linux系统将设备分为3类:<em>字符</em>设备、块设备、网络设备。 应用程序调用的流程框图: 三种设备的定义分别如下, <em>字符</em>设备:只能一个字节一个字节的读写的设备,不能随机读取设备内存中的某一数据,读取数据需要按照先后顺序进行。<em>字符</em>设备是面向流的设备,常见的<em>字符</em>设备如鼠标、键盘、串口、控制台、LED等。 块设备:是指可以从设备的任意位置读取一定长度的数据设备。块设备如硬盘、磁盘
129_驱动_字符设备驱动
注册一个结构体  file_operation
程序员实用工具网站
目录 1、搜索引擎 2、PPT 3、图片操作 4、文件共享 5、应届生招聘 6、程序员面试题库 7、办公、开发软件 8、高清图片、视频素材网站 9、项目开源 10、在线工具宝典大全 程序员开发需要具备良好的信息检索能力,为了备忘(收藏夹真是满了),将开发过程中常用的网站进行整理。 1、搜索引擎 1.1、秘迹搜索 一款无敌有良心、无敌安全的搜索引擎,不会收集私人信息,保...
我花了一夜用数据结构给女朋友写个H5走迷宫游戏
起因 又到深夜了,我按照以往在csdn和公众号写着数据结构!这占用了我大量的时间!我的超越妹妹严重缺乏陪伴而 怨气满满! 而女朋友时常埋怨,认为数据结构这么抽象难懂的东西没啥作用,常会问道:天天写这玩意,有啥作用。而我答道:能干事情多了,比如写个迷宫小游戏啥的! 当我码完字准备睡觉时:写不好别睡觉! 分析 如果用数据结构与算法造出东西来呢? ...
别再翻了,面试二叉树看这 11 个就够了~
写在前边 数据结构与算法: 不知道你有没有这种困惑,虽然刷了很多算法题,当我去面试的时候,面试官让你手写一个算法,可能你对此算法很熟悉,知道实现思路,但是总是不知道该在什么地方写,而且很多边界条件想不全面,一紧张,代码写的乱七八糟。如果遇到没有做过的算法题,思路也不知道从何寻找。面试吃了亏之后,我就慢慢的做出总结,开始分类的把数据结构所有的题<em>型</em>和解题思路每周刷题做出的系统性总结写在了 Github...
让程序员崩溃的瞬间(非程序员勿入)
今天给大家带来点快乐,程序员才能看懂。 来源:https://zhuanlan.zhihu.com/p/47066521 1. 公司实习生找 Bug 2.在调试时,将断点设置在错误的位置 3.当我有一个很棒的调试想法时 4.偶然间看到自己多年前写的代码 5.当我第一次启动我的单元测试时 ...
七个开源的 Spring Boot 前后端分离项目,一定要收藏!
前后端分离已经在慢慢走进各公司的技术栈,根据松哥了解到的消息,不少公司都已经切换到这个技术栈上面了。即使贵司目前没有切换到这个技术栈上面,松哥也非常建议大家学习一下前后端分离开发,以免在公司干了两三年,SSH 框架用的滚瓜烂熟,出来却发现自己依然没有任何优势! 其实前后端分离本身并不难,后段提供接口,前端做数据展示,关键是这种思想。很多人做惯了前后端不分的开发,在做前后端分离的时候,很容易带进来一...
用Python分析2000款避孕套,得出这些有趣的结论
到现在为止,我们的淘宝教程已经写到了第四篇,前三篇分别是: 第一篇:Python模拟登录淘宝,详细讲解如何使用requests库登录淘宝pc端。 第二篇:淘宝自动登录2.0,新增Cookies序列化,教大家如何将cookies保存起来。 第三篇:Python爬取淘宝商品避孕套,教大家如何爬取淘宝pc端商品信息。 今天,我们来看看淘宝系列的第四篇 我们在上一篇的时候已经将淘宝数据爬取下来了,...
接私活必备的 10 个开源项目!
点击蓝色“GitHubDaily”关注我加个“星标”,每天下午 18:35,带你逛 GitHub!作者 | SevDot来源 | http://1t.click/VE8W...
阿里资深工程师教你如何优化 Java 代码!
作者 | 王超 责编 | 伍杏玲 明代王阳明先生在《传习录》谈为学之道时说: 私欲日生,如地上尘,一日不扫,便又有一层。着实用功,便见道无终穷,愈探愈深,必使精白无一毫不彻方可。 代码中的"坏味道",如"私欲"如"灰尘",每天都在增加,一日不去清除,便会越累越多。如果用功去清除这些"坏味道",不仅能提高自己的编码水平,也能使代码变得"精白无一毫不彻"。这里,整理了日常工作中的一...
GitHub开源的10个超棒后台管理面板
目录 1、AdminLTE 2、vue-Element-Admin 3、tabler 4、Gentelella 5、ng2-admin 6、ant-design-pro 7、blur-admin 8、iview-admin 9、material-dashboard 10、layui 项目开发中后台管理平台必不可少,但是从零搭建一套多样化后台管理并不容易,目前有许多开源、免费、...
100 个网络基础知识普及,看完成半个网络高手
欢迎添加华为云小助手微信(微信号:HWCloud002或HWCloud003),输入关键字“加群”,加入华为云线上技术讨论群;输入关键字“最新活动”,获取华为云最新特惠促销。华为云诸多技术大咖、特惠活动等你来撩! 1)什么是链接? 链接是指两个设备之间的连接。它包括用于一个设备能够与另一个设备通信的电缆类<em>型</em>和协议。 2)OSI 参考模<em>型</em>的层次是什么? 有 7 个 OSI 层:物理...
Google离开我们快十年了
2010年1月13日,Google离开中国。掐指算来,Google已经离开我们快十年了。2010年是个特殊的年份,这一年还发生了3Q大战。为什么诸多大事都发生在2010年...
面试官的HTTP五连问法?我竟然回答不上来...
作者丨松若章来源丨http://1t.click/ataf曾经有这么一道经典面试题:从 URL 在浏览器被被输入到页面展现的过程中发生了什么?相信大多数准备过的同学都能回...
中国最顶级的一批程序员,从首富到首负!
过去的20年是程序员快意恩仇的江湖时代通过代码,实现梦想和财富有人痴迷于技术,做出一夜成名的产品有人将技术变现,创办企业成功上市这些早一代的程序员们创造的奇迹引发了一浪高...
为什么面向对象糟透了?
又是周末,编程语言“三巨头”Java, Lisp 和C语言在Hello World咖啡馆聚会。服务员送来咖啡的同时还带来了一张今天的报纸, 三人寒暄了几句, C语言翻开了...
分享靠写代码赚钱的一些门路
作者 mezod,译者 josephchang10如今,通过自己的代码去赚钱变得越来越简单,不过对很多人来说依然还是很难,因为他们不知道有哪些门路。今天给大家分享一个精彩...
对计算机专业来说学历真的重要吗?
我本科学校是渣渣二本,研究生学校是985,现在毕业五年,校招笔试、面试,社招面试参加了两年了,就我个人的经历来说下这个问题。 这篇文章很长,但绝对是精华,相信我,读完以后,你会知道学历不好的解决方案,记得帮我点赞哦。 先说结论,无论赞不赞同,它本质就是这样:对于技术类工作而言,学历五年以内非常重要,但有办法弥补。五年以后,不重要。 目录: 张雪峰讲述的事实 我看到的事实 为什么会这样 ...
在线就能用的Linux我给你找好了
来源:公众号【编程珠玑】 作者:守望先生 网站:https://www.yanbinghu.com 前言 是不是不想装虚拟机,还想体验一下Linux?是不是自己的电脑不在,又想搞事情?今天给大家推荐几个在线就可以玩的Linux环境以及学习Shell的地方。 在线Linux环境 如果你不想安装虚拟机,这里提供几个在线就能把玩Linux的网站,他们不需要注册用户,可以直接使用。 Unix...
世界上最好的学习法:费曼学习法
你是否曾幻想读一遍书就记住所有的内容?是否想学习完一项技能就马上达到巅峰水平?除非你是天才,不然这是不可能的。对于大多数的普通人来说,可以通过笨办法(死记硬背)来达到学习的目的,但效率低下。当然,也可以通过优秀的学习法来进行学习,比如今天讲的“费曼学习法”,可以将你的学习效率极大的提高。 费曼学习法是由加拿大物理学家费曼所发明的一种高效的学习方法,费曼本身是一个天才,13岁自学微积分,24岁加入曼...
学Linux到底学什么
来源:公众号【编程珠玑】 作者:守望先生 网站:https://www.yanbinghu.com/2019/09/25/14472.html 前言 ​我们常常听到很多人说要学学Linux或者被人告知说应该学学Linux,那么学Linux到底要学什么? 为什么要学Linux 在回答学什么之前,我们先看看为什么要学。首先我们需要认识到的是,很多服务器使用的是Linux系统,而作为服务器应...
深入理解C语言指针
一、指针的概念 要知道指针的概念,要先了解变量在内存中如何存储的。在存储时,内存被分为一块一块的。每一块都有一个特有的编号。而这个编号可以暂时理解为指针,就像酒店的门牌号一样。 1.1、变量和地址 先写一段简单的代码: void main(){ int x = 10, int y = 20; } 这段代码非常简单,就是两个变量的声明,分别赋值了 10、20。我们把内存当做一个酒店,而每个房间就...
C语言实现推箱子游戏
很早就想过做点小游戏了,但是一直没有机会动手。今天闲来无事,动起手来。过程还是蛮顺利的,代码也不是非常难。今天给大家分享一下~ 一、介绍 开发语言:C语言 开发工具:Dev-C++ 5.11 日期:2019年9月28日 作者:ZackSock 也不说太多多余的话了,先看一下效果图: 游戏中的人物、箱子、墙壁、球都是<em>字符</em>构成的。通过wasd键移动,规则的话就是推箱子的规则,也就不多说了。 二、代...
面试官:兄弟,说说基本类和包装类的区别吧
Java 的每个基本类<em>型</em>都对应了一个包装类<em>型</em>,比如说 int 的包装类<em>型</em>为 Integer,double 的包装类<em>型</em>为 Double。基本类<em>型</em>和包装类<em>型</em>的区别主要有以下 4 点。
8000字干货:那些很厉害的人是怎么构建知识体系的
本文约8000字,正常阅读需要15~20分钟。读完本文可以获得如下收益: 分辨知识和知识体系的差别 理解如何用八大问发现知识的连接点; 掌握致用类知识体系的构建方法; 能够应用甜蜜区模<em>型</em>找到特定领域来构建知识体系。 1. 知识体系?有必要吗? 小张准备通过跑步锻炼身体,可因为之前听说过小腿变粗、膝盖受伤、猝死等等与跑步有关的意外状况,有点担心自己会掉进各种坑里,就在微信上问朋友圈一直晒跑步...
Android完整知识体系路线(菜鸟-资深-大牛必进之路)
前言 移动研发火热不停,越来越多人开始学习Android 开发。但很多人感觉入门容易成长很难,对未来比较迷茫,不知道自己技能该怎么提升,到达下一阶段需要补充哪些内容。市面上也多是谈论知识图谱,缺少体系和成长节奏感,特此编写一份 Android 研发进阶之路,希望能对大家有所帮助。 由于篇幅过长,有些问题的答案并未放在文章当中,不过我都整理成了一个文档归纳好了,请阅读到文末领取~ Ja...
C语言这么厉害,它自身又是用什么语言写的?
这是来自我的星球的一个提问:“C语言本身用什么语言写的?”换个角度来问,其实是:C语言在运行之前,得<em>编译</em>才行,那C语言的<em>编译</em>器从哪里来? 用什么语言来写的?如果是用C语...
Java版的7种单例模式
前言 Java 中的单例模式是我们一直且经常使用的设计模式之一,大家都很熟悉,所以这篇文章仅仅做我自己记忆。 Java版七种单例模式写法 一:懒汉,线程不安全 这种写法lazy loading很明显,但是致命的是在多线程不能正常工作。 public class Singleton{ private static Singleton instance; private Singl...
彻底搞懂JVM类加载器:基本概念
本文阅读时间大约9分钟。写在前面在Java面试中,在考察完项目经验、基础技术后,我会根据候选人的特点进行知识深度的考察,如果候选人简历上有写JVM(Java虚拟机)相关的...
开源大阅兵:盘点那些走向世界的中国项目
“开源(Open Source)”,这个在程序员界耳熟能详的词,几乎充斥着我们的整个职业生涯。相信没有一个程序员不知道啥是“开源”,相信没有一个程序员从来没用过“开源”产品。回顾一下,我们所熟知的一些伟大开源项目几乎都出自国外的程序大师或组织。然而,这几年国人也贡献了不少优秀的开源项目与产品,甚至有一些也收到国外同行的认可与赞许。下面我们就在一起盘点下,那些产自中国,走向世界的伟大开源项目吧! K...
计算机非科班工作后如何爬出技术的绝望之谷,走向开悟之路
emm,几个月没写博客了,究其原因,还是觉得自己太菜了吧。 我从17年底开始写博客,最初只是为了记录一下自己技术生涯的一些学习细节,将某些知识,以文章的形式记录下来,内容比较随意,主要是方便以后自己回顾,查漏补缺。但两年过去了,越来越多的读者看到了我的博客,这也许能对他们产生一些帮助,我很开心,但也很惶恐,我很怕因为自己水平不足、认识有限而误导了某些读者。 作为非科班转行计算机后端开发,工作这两年...
Python使用tkinter模块实现推箱子游戏
前段时间用C语言做了个<em>字符</em>版的推箱子,着实是比较简陋。正好最近用到了Python,然后想着用Python做一个图形界面的推箱子。这回可没有C那么简单,首先Python的图形界面我是没怎么用过,在网上找了一大堆教材,最后选择了tkinter,没什么特别的原因,只是因为网上说的多。 接下来就来和大家分享一下,主要分享两点,第一就是这个程序的实现过程,第二点就是我在编写过程中的一些思考。 一、介绍 开发...
认真推荐几个不错的技术公众号
十一假期,好好休息休息今天给大家推荐几个不同技术领域的公众号,涉及服务端后台、前端、Python、职场等各领域。这些号的无论从文章质量,还是从留言互动上,都是值得大家关注...
NULL,0,`0`,`\0`,"0"你分得清吗?
​ 来源:公众号【编程珠玑】 作者:守望先生 网站:https://www.yanbinghu.com/2019/09/19/18180.html 前言 在C语言中,我们有时候看到NULL,有时候也看到'\0',那它们之间有什么区别呢? 本质 本质来说,NULL,0,'\0'都是一样的,都是值0。是的,你没有听错。说到这本文差不多应该结束了。不过为了不被打,还是继续说一说。它们...
Python 愤怒的小鸟代码实现(1):物理引擎pymunk使用
python 愤怒的小鸟代码实现(1):物理引擎pymunk使用游戏介绍 游戏介绍 最近比较忙,国庆正好有时间写了python版本的愤怒的小鸟,使用了物理引擎pymunk,代码参考了 github上的,实现了一个可玩的简单版本。 功能实现如下: ...
国产阿里OCEANBAS勇夺TPC-C冠军,200行代码解读它的速度源头
我国高科技基础平台又有重大突破,继阿里和腾讯以及众多国内老牌嵌入式厂商相继宣传开源lot操作系统之后(详见国产开源lot操作系统大阅兵)今天据权威机构国际事务处理性能委员会(Transaction Processing Performance Council)官网披露,由阿里自主研发的关系数据库OceanBase,在TPC-C基准测试中,打破了由美国公司Oracle(甲骨文)保持了9...
Java 初级面试题(持续更,近期更新时间:2019/10/11)
为了方便阅读JDK的源码,我就把讲解放在代码的注释里边了。 于昨日2019/10/9日,面了一个岗位,面试题我拍下来了,给大家先看下吧,后面我再接着更新答案。可能AV画质了,原图我会共享到群,欢迎大家进群吹水(183579482)。 目录直通车 统计某段<em>字符</em>串中的某个<em>字符</em>串的个数? 随机获取100以内的10个数且不重复并排序 统计某段<em>字符</em>串中的某...
前端开发必备网站推荐
本人是一个纯正的小白,在学习的过程中搜集了一些关于前端开发的网站,希望对大家能够有所帮助!授人以鱼不如授人以渔! 1.MDN开发者文档网址:https://developer.mozilla.org/zh-CN/ 2.菜鸟教程:https://www.runoob.com/html/html-tutorial.html 3.CSS教程:https://www.schoolw3c.com/html-...
中国物联网激荡20年
故事还要从24年前那个夏天说起。 ** 1 ** 1995年的夏天,美国西海岸有一个中年人出版了一本叫《未来之路》的书籍,这本书是大家了解信息高速公路全部面目乃至21世纪人类生活面貌的入门书。在这本书中,这个中年人多次提到“物物互联”的设想。但是由于当时网络技术与传感器应用水平的限制,中年人朦胧的“物联网”理念没有引起重视。对了,这个中年人后面做了十几次世界首富! 说回国内,那时风还没有起来,科技...
写个最简单的植物大战僵尸修改器吧!c和python
效果图: C实现: #include&lt;windows.h&gt; #include&lt;stdio.h&gt; void main() { //获取游戏窗口句柄 HWND hd = FindWindow(L"MainWindow",L"植物大战僵尸中文版"); DWORD pid; //通过窗口句柄获取进程ID GetWindowThreadProcessId...
【java基础之异常】死了都要try,不淋漓尽致地catch我不痛快!
文章目录1、异常1.1 异常概念1.2 异常体系1.3 异常分类1.4 异常的产生过程解析2、 异常的处理2.1 抛出异常throw2.2 Objects非空判断2.3 声明异常throws2.4 捕获异常try…catch2.4 finally 代码块2.5 异常注意事项3、自定义异常3.1 概述3.2 自定义异常练习 1、异常 1.1 异常概念 异常 :指的是程序在执行过程中...
Vue 3.0 源码开放,看看都有哪些新特性
当大多数国人还在庆祝国庆节的时候,尤雨溪大大在昨天凌晨发布了 Vue 3.0 源代码,源码地址:https://github.com/vuejs/vue-next 。虽然目前还 处于 Pre-Alpha 版本,但是可以预见后面的 Alpha、Beta 等版本应该不会太遥远。 之前,就有预言,除了性能优化、脚手架和新功能外,TypeScript绝对是一个重点,因此,在Vue 3.0源代码版本中,9...
用Matplotlib,妈妈再也不担心我没有表情包斗图了
全文共3003字,预计学习时长6分钟 Netflix、Instagram、YouTube、电影还有电视剧,这些都有什么共同之处呢?它们都是视觉媒介,吸引着形形色色的观众。 今时今日,大部分人逐渐放弃读书、听书的方式,而选择观看电影、电视剧去了解一个故事。也许有人持不同意见,认为人们还未曾放弃书籍,但认清这现实吧——喜爱看电影的人要比爱读书的人多得多。 以上讨论了视觉成为当下重要沟通...
十大优秀编程项目,让你的简历金光闪闪
全文共3241字,预计学习时长6分钟 被问到如何学习编程时,最常听到的问题就是:“有没有什么新项目的好点子?” 一些老套的答案有:“做一个象棋游戏”或者“命令行界面”。 这些答案没有错,但这些例子不符合现代编程的需要。现代软件编写需要经常使用软件服务化(SaaS)和网络应用,这意味着程序员需要了解如何在线编程。 用户网站或应用程序的编程需要服务器、身份验证和数据库,这个过程十分复杂。它...
第二弹!python爬虫批量下载高清大图
文章目录前言下载免费高清大图下载带水印的精选图代码与总结 前言 在上一篇写文章没高质量配图?python爬虫绕过限制一键搜索下载图虫创意图片!中,我们在未登录的情况下实现了图虫创意无水印高清小图的批量下载。虽然小图能够在一些移动端可能展示的还行,但是放到pc端展示图片太小效果真的是很一般!建议阅读本文查看上一篇文章,在具体实现不做太多介绍,只讲个分析思路。 当然,本文可能技术要求不是特别高,但可以...
SpringBoot注解梳理
一、注解(annotations)列表 二、注解(annotations)详解 三、JPA注解 四、springMVC相关注解 五、全局异常处理 一、注解(annotations)列表 @SpringBootApplication:包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。其中@Component...
ReentrantLock 源码解读之lock和unlock过程
文中都是自己总结的,如果哪里逻辑不对或者写的不清楚的还请评论区中指出。 前言:本篇主要基于源码来解读ReetrantLock加锁和解锁的过程,reetrantLock的主体思想就是通过对锁status的加减操作来实现的,如果当前线程获得当前锁就把status+1,再次获取就继续+1,释放锁就是-1; 如果加锁的时候发现锁status不等于0就把当下线程放入到一个FIFO队列(就是一个双向链...
Spring Boot 无侵入式 实现API接口统一JSON格式返回
无侵入式 统一返回JSON格式 其实本没有没打算写这篇博客的,但还是要写一下写这篇博客的起因是因为,现在呆着的这家公司居然没有统一的API返回格式????,询问主管他居然告诉我用HTTP状态码就够用了(fxxk),天哪HTTP状态码真的够用吗?在仔细的阅读了项目源码后发现,在API请求的是居然没有业务异常(黑人问好)。好吧 居然入坑了只能遵照项目风格了,懒得吐槽了。 因为项目已经开发了半年多了, 要是全...
tensorflow安装(机器学习入门,小白包会)
机器学习入门:tensorflow安装前言个人情况说明安装步骤1.你出现的问题安装步骤1.安装anaconda2.快速安装 前言 现在机器学习大火,但是tensorflow的安装特别崩溃,看了特别多教程,觉得一点也不好用,我来给大家带来简单易懂的操作。 个人情况说明 我安装了pycharm 2019.2.3作为Python的IDE和anaconda来管理python的各种包,在此特别推荐anaco...
结合OpenCV与TensorFlow进行人脸识别
作为新手来说,这是一个最简单的人脸识别模<em>型</em>,难度不大,代码量也不算多,下面就逐一来讲解,数据集的准备就不多说了,因人而异。 一. 获取数据集的所有路径 利用os模块来生成一个包含所有数据路径的list def my_face(): path = os.listdir("./my_faces") image_path = [os.path.join("./my_faces/",im...
算法小程序:倒水问题
问题描述 有三个容积分别为3,5,8升的水桶,其中容积为8升的水桶中装了水,容积为3,5的水桶为空。水桶没有刻度尺,现在需要将水桶中的8升水等分成2分,每份都是4升水,该怎么分。总共有多少种分方法 思路 水桶分别为3L,5L,8L,而且没有刻度尺衡量倒多少水,所有倒水要么被装的水桶倒满,要么倒水的桶倒完。 我们可以给每个桶标记一种状态,初始状态就是8L水桶满,其余两个水桶为空,每倒一次,两个桶的状...
Mybatis连接数据库常用语句整理汇总(1)
这期博客我将会重点回顾Mybatis常用的语法,包括基本的增删查改语句的书写,当然查询SQL我们会重点突出,包含的知识点也会比较多。 我们首先进行配置文件,新建db.properties,该文件主要用于数据库连接,其代码如下: #MYSQL config jdbc.driver = com.mysql.jdbc.Driver jdbc.url = jdbc:mysql://127.0.0.1...
python入门教程
入门教程:菜鸟教程(这个网站可以说是所有语言快速入门的必备的网站了)https://www.runoob.com/python3/python3-tutorial.html python的官方下载安装地址:https://www.cnblogs.com/panpanilu/p/7766951.html 1.python安装的时候直接点击安装即可,特别注意:在点击安装的时候需要勾选一下path路...
今年国庆的一些感受
本文写于2019年10月7日,国庆假期结束前一天。 今年国庆是伟大的祖国70周年生日,举国同庆,放假前夕笔者也不例外的想早点为祖国母亲庆生,一切变化都来得太快,原本年初就计划好国庆出国门一趟,但计划真的赶不上变化,因为自己国庆前做了几件大事的决定,让我觉得有些事情可以往后放一放了。所以今年国庆跟往年一样,哪里都没去,回到老家陪陪父母,看看今年的阅兵式。 说起阅兵式,估计今年的阅兵式是最让我热血...
数据库基础(常用SQL语句)
一、数据库级及SQL语言简介 1、目前主流数据库 微软:sql server、access 瑞典:mysql ibm: db2 sybase:sybase ibm: informix oracle: oracle 2、SQL语言 DQL-------------数据查询语言 select … From … Where DML-------------数据操纵语言 insert、upda...
Java中几种排序算法
1、冒泡排序算法 通过多次比较(相邻两个数)和交换来实现排序 public class bubble { public static void bubbleSort(int[] a) { int temp; for (int i = 1; i &lt; a.length; i++) { //将相邻两个数进行比较,较大的数往后冒泡 fo...
JS面试中常见的算法题
前言 最近在准备秋招,做过了大大小小的公司的面试题,发现除了基础知识外,算法还是挺重要的。特意整理了一些常见的算法题,添加了自己的理解并实现。 除此之外,建议大家还可以刷刷《剑指offer》(但我还没刷完????,任重道远呐)。此外,左神在牛客网上也有算法课程,听了基础班的感觉还不错,起码让我这个算法小白也能快速地理解了很多问题,知识付费的时代,这个真的是良心课程了。就我个人而言的话,平时为了解决一...
VS2010 MFC计算器下载
用VS2010 C++写的MFC计算器,功能包括四则运算和存储记忆、退格、清零等,可以实现连续运算,基本无BUG 相关下载链接:[url=//download.csdn.net/download/llxy03/4236266?utm_source=bbsseo]//download.csdn.net/download/llxy03/4236266?utm_source=bbsseo[/url]
无刷云台,飞控下载
无刷云台固件,adinon软件升级 狗通过软件升级来增加新的产品升级。 检查一下你的相机或其他狗产品是否有新的升级,访问:gopro.com/update 。 相关下载链接:[url=//download.csdn.net/download/swq007/5170722?utm_source=bbsseo]//download.csdn.net/download/swq007/5170722?utm_source=bbsseo[/url]
计算机等级考试三级网络技术教程.下载
计算机三级网络技术的简略教程,可做为三级的考试准备 相关下载链接:[url=//download.csdn.net/download/evazore/9234921?utm_source=bbsseo]//download.csdn.net/download/evazore/9234921?utm_source=bbsseo[/url]
相关热词 c# 应用r包 c# excel格式刷 c# 监控word保存 c#中字符串排序 c# 打印方向 c# 获取根目录 c#语言文档 c#设置开机自启动 c# cpu id 主板 c# timer越来越卡
我们是很有底线的