- 博客(61)
- 资源 (5)
- 收藏
- 关注
原创 二维字符数组中字符串查找
首先输入一个数字N,接着输入N行字符,每个字符用逗号分隔,最终形成一个N * N的字符数组。然后再输入一个待查找的目标字符串,在上面字符数组中查找是否出现目标字符串,查找的规则是在起始位置 从左向右 或者 从上向下,每个单元格的字符只出现一次。如果查找成功,输出目标字符在字符数组总的(i,j)下标,用逗号分隔;如果查找失败,则输出字符串"N"。
2023-07-17 10:10:32
758
转载 Linux查看和修改时区
对于部署在海外的Linux服务器来说,拿到的机器时区和本地并不一样,导致运行在上面的应用也面临时区问题。所以有必要修改系统本地时区。0x00:查看时区查看当前生效的时区,可以简单的通过date命令查看当前时间:[root@shuai01 zoneinfo]# date -RTue, 17 Jan 2017 21:36:23 +0800最后的+0800,即东8区。0x01:设置时区tzselect命令看起来很像一个时区选择的工具,但并非如此。事实上tzselect仅仅是一个查看时区表示方
2022-03-23 09:33:40
5992
原创 linux可执行文件添加到PATH环境变量的方法
转载自joshua317博客linux可执行文件添加到PATH环境变量的方法 - joshua317的博客linux命令行下面执行某个命令的时候,首先保证该命令是否存在,若存在,但输入命令的时候若仍提示:command not found这个时候就的查看PATH环境变量的设置了,当前命令是否存在于PATH环境变量中#查看PATH:echo $PATH举例说,命令 composr 在/usr/loca/bin但执行的时候提示:-bash: composr: command n.
2022-03-04 15:05:21
1882
原创 gcc预编译结果
使用gcc -E参数对源文件进行预编译,可以从结果文件发现头文件以及宏等是如何引用的,有助于分析代码的编译过程。下面是gcc中对预编译结果文件的解释:9 Preprocessor OutputWhen the C preprocessor is used with the C, C++, or Objective-C compilers, it is integrated into the compiler and communicates a stream of binary tokens...
2021-08-31 19:30:15
463
转载 RedHat Linux各版本汇总
Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Redhat(RHEL)为代表,后者以Debian为代表。 Redhat有两大Linux产品系列,其一是免费的Fedora Core系列主要用于桌面版本,提供了较多新特性的支持。另外一个产品系列是收费的Enterprise系列,即RHEL(Redhat Enterprise Linux),这个系列分成:AS/ES/WS等分支。Redhat Linux版本变迁时间表:...
2021-08-28 15:00:15
17343
转载 Linux系统各发行版镜像下载
Linux系统各发行版镜像下载(2014年10月更新),如果直接下载不了,请使用迅雷下载。并且注意,我的下载地址,在迅雷里才起作用。包括Ubuntu,Fedora,SUSE,Red HatEnterprise Linux,CentOS等。中国大陆开源镜像站汇总1.企业贡献:搜狐开源镜像站:http://mirrors.sohu.com/网易开源镜像站:http://mirrors.163.com/2.大学教学:北京理工大学:http://mirror.bit.edu.c...
2021-08-28 14:58:18
255
原创 变参宏的实现
typedef char * va_list;#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )#define va_start(ap, v) ( ap = (va_list)&v + _INTSIZEOF(v) )#define va_arg(ap, t) ( *(t *)((ap += _INTSIZEOF(t)) - _INTSIZEOF(t)) )#define va_en.
2021-08-01 23:20:43
74
原创 vmware网络连接
1、分类VMware为我们提供了三种网络工作模式,分别是:Bridged(桥接模式)、NAT(网络地址转换模式)、Host-only(仅主机模式)。VMware安装后主机会多出两个虚拟网卡:VMware Network AdepterVMnet1:Host 用于与 Host-only 虚拟网络进行通信的虚拟网卡VMware Network Adepter VMnet8:Host 用于与 NAT虚拟网络进行通信的虚拟网卡2、介绍 在Bridge桥接模式下,VMware虚拟出来的操作..
2021-07-20 11:12:22
97
原创 JTAG调试原理
在单片机程序开发过程中,使用调试器给程序打断点、单步运行等调试功能是很方便了解程序的运行情况的,但是这些调试的底层原理是怎样的,本文就来介绍下。 以S3C2440为例,其cpu是基于arm9架构的,在cpu的内部有个JTAG模块,这个模块具有以下特点:1、cpu发出的地址信号、数据信号都是通过JTAG模块的; 2、JTAG可以控制cpu的运行; 3、JTAG可以直接访问外设,读取外设的寄存器数据。 在...
2021-07-16 00:10:58
1685
原创 计划20210715
目标:linux嵌入式驱动工程师每天坚持学习相关知识2小时第一、学习基本的裸机编程第二、使用linux系统进行一些基本的实验第三、研究完整的linux系统的运行过程 bootloader、linux kernel、rootfs第四、开始做系统移植第五、研究linux驱动程序的编写第六、研究应用程序的编写...
2021-07-15 19:32:07
61
原创 linux0.11 IDT中断描述符的建立
首先在head.s汇编文件中建立中断描述符,中断描述符一共含有256项,每一项对应一个中断处理程序ignore_int,该中断处理程序是用中断门进行定义的,代码如下:setup_idt: lea ignore_int,%edx #将ignore_int的有效地址值-->edx寄存器 movl $0x00080000,%eax movw %dx,%ax /* selector = 0x0008 = cs */ movw $0x8E00,%dx /* interrupt gate - d
2021-03-10 23:44:27
456
转载 国内开源镜像站
2018国内优秀开源镜像站汇总一、站点版企业站1.网易:http://mirrors.163.com/2.阿里云:http://mirrors.aliyun.com/同步频率为每天一次,每天凌晨2:00-4:00为镜像的同步时间3.搜狐:http://mirrors.sohu.com/1.清华大学:https://mirrors.tuna.tsinghua.edu.cn/2.中国...
2020-01-10 19:39:53
129
原创 coreutils-8.28的ls.c源码阅读一
在阅读ls.c的源码时,有以下的断言,这个是在编译时进行检测的:/* Ensure that filetype and filetype_letter have the same number of elements. */verify (sizeof filetype_letter - 1 == arg_directory + 1);以下一步一步给出verify的定义...
2020-01-04 14:20:53
211
原创 cmake与autoconf+automake的对比
工欲善其事,必先利其器。在linux的项目中有很多用于构建工程的工具,cmake以及autoconf+automake就是其中常见的两种方案,是否会用它们,从间接说明是否具有大型项目的能力。详见链接:https://blog.csdn.net/cnsword/article/details/7542696...
2019-12-30 20:46:58
471
原创 git拉取指定的远程分支
第一种:直接拉取git clone -b 远程分支名 仓库地址第二种:(本地已经有相关的仓库代码)//查看远程分支git branch -r//创建本地分支并关联git checkout -b 本地分支 origin/远程分支...
2019-12-30 13:38:47
211
原创 编译coreutils-8.28
刚刚看完apue,但是要达到熟练运用书中的API,还是要多读多写代码。之前就比较好奇像linux中的ls、cat等基本命令的实现,在网上查得linux有个coreutils包专门实现这些基本的命令,详见coreutils介绍。比如,对于我的ubuntu:$ which ls/bin/ls$ dpkg -S /bin/lscoreutils: /bin/ls$ ls ...
2019-12-28 14:05:09
912
原创 linux中找不到动态链接库.so文件
在ubuntu下自己在/home/ubuntu/program下创建一个动态链接库文件: gcc -Wall -g -fPIC -c test.c -o test.o gcc -shared test.o -o libtest.so 但是在相同目录下的main.c程序链接上述动态链接库出错,找不到libtest.so gcc main.c -L. -...
2019-10-27 20:50:40
159
原创 Ubuntu下使用samba与windows共享文件
1、安装samba与smbclient sudo apt-get install samba sudo apt-get install smbclient2、修改配置文件 vi /etc/samba/smb.conf 编辑smb.conf 文件 在配置文件的最末尾加上:[project] path = /home/ubuntu/project avail...
2019-09-19 16:09:59
188
原创 变参函数的原理与使用
在VC6.0中va_xxx是以宏定义的形式存在的:typedef char * va_list;#define _INTSIZEOF(n) ( (sizeof(n) + sizeof(int) - 1) & ~(sizeof(int) - 1) )#define va_start(ap, v) ( ap = (va_list)&v + _INTSIZEOF(v) )...
2019-07-30 23:35:48
399
原创 GCC编译器的字节对齐
#include <stdio.h>/*由于在X86(32位机器)平台下,GCC编译器默认按4字节对齐,如: 结构体4字节对齐,即结构体成员变量所在的内存地址是4的整数倍可以通过使用gcc中的__attribute__选项来设置指定的对齐大小。1):__attribute__ ((packed)),让所作用的结构体取消在编译过程中的优化对齐,按照实际占用字节数进行对...
2019-07-29 23:32:48
4471
原创 ubuntu64上使用gcc编译出32位程序
在64位的ubuntu系统上,使用gcc想编译出32位的应用程序,需要使用gcc -m32选项,但是使用该选项后,出现如下找不到头文件的错误: fatal error:sys/cdefs.h: No such file or directory可以使用如下方法解决:sudo apt-get updatesudo apt-get purge libc6-devsudo ap...
2019-07-28 12:41:34
1613
原创 链表的游标实现
/** * author: bbird_gl * date: 2019/7/17 * description: 链表的游标实现头文件 */#ifndef _CURSOR_H_#define _CURSOR_H_#define SPACESIZE 100typedef int ElementType;typedef int PtrToNode;t...
2019-07-18 00:32:08
169
原创 基数排序(静态链表法)
/** * author: bbird_gl * date: 2019/7/16 * description: 基排序(静态链表法实现) */typedef struct { int key; //节点的关键码值 int next; //下一个节点在数组中的下标}Node;//静态队列typedef struct { i...
2019-07-16 23:08:01
917
原创 基数排序(计数法)
/** * author: bbird_gl * date: 2019/7/11 * description: 基排序(计数法实现) */#include <stdlib.h>#include <string.h>//n为数组大小,d为排序码数, r为基数void RadixSort(int arr[], int n, int d...
2019-07-11 23:12:05
305
原创 CORBA、ACE、TAO之间的关系
最近项目用到了CORBA,所以理一下这三者的关系: ACEis an open-source framework that provides many components andpatternsfor developing high-performance, distributed real-time and embedded systems. ACE provides powe...
2019-07-01 17:59:00
2002
原创 Linux中$()与${}的区别以及创建环境变量的方法
Linux中$()与${}的区别:$():这个小括号里放的是命令,和``反引号作用一样,执行这个命令${}:这里面放的是变量,用来引用的linux中创建环境变量的方法: 方法一: 在/etc/profile文件中添加变量【对所有用户生效(永久的)】 用vim在文件/etc/profile文件中增加变量,该变量将会对Linux下所有用户有效,并且是“永...
2019-07-01 15:54:53
1012
原创 随机置换算法
问题描述:假设需要生成前N个自然数的一个随机置换。例如,{4,1,2,5,2}和{3,1,4,2,5}就是合法的置换,但{5,4,1,2,1}却不是,因为数1出现了两次而数3缺没有。这个程序常常用于模拟一些算法。我们假设存在一个随机数生成器randInt(i, j),它以相同的概率生成i和j之间的一个整数。下面是三个算法:1.如下填入A[0]到A[N-1]的数组A;为了填入A[i],生成随机数...
2019-06-30 20:37:31
2645
原创 折半排序、欧几里德算法、递归求幂算法
/** * author: bbird_gl * date: 2019/6/26 * description: 对分查找已排序数组中是否含有x,时间复杂度O(logN) */int BinarySearch(const int A[], int x, int n){ int left, right, mid; left = 0; ri...
2019-06-27 23:40:42
121
原创 最大子序列和
/** * author: bbird_gl * date: 2019/6/26 * description: 求给定整数序列的最大子序列,为了方便起见,如果所有整数均为负数,则最大子序列和为0 *///方法一:三层循环,时间复杂度O(n^3)int MaxSubsequenceSum(const int A[], int N){ int This...
2019-06-26 23:51:15
93
原创 005_ARM裸机1期加强版(新1期)\第013课_代码重定位\第005节
在学习韦东山嵌入式学习视频的005_ARM裸机1期加强版(新1期)\第013课_代码重定位\第005节,视频中老师把NOR flash中的代码拷贝到SDRAM中执行,但是跳转指令使用的是bl main,查资料得知bl是相对位移跳转指令,跳转到main后运行的还是NOR flash中的代码,但是老师之前讲过,NOR flash是只读的,为什么在串口调试时打印的全局变量是可以改变的呢? ...
2019-04-27 20:36:22
293
原创 周末聚会有感
昨天晚上出去和几个之前的校友小聚一下,感触比较多,导致晚上失眠,主要是通过别人对比了自己,也许没有对比就没有成长吧,有个人通过自己的努力取得了上海户口并在上海买了房,这才工作不到三年的时间,真的感觉随着时间的推移,同学以及认识人的差距会越来越大,不断的有这个经理那个总的出现,这样一想,就强烈的感到迷茫与困惑,再过几年我会变成什么样子,到那时候朋友聚会会不会感到有很大的落差呢。...
2019-01-13 23:09:29
203
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人