C
文章平均质量分 92
hexiechina2010
这个作者很懒,什么都没留下…
展开
-
strok函数用法
char *strtok( char *strToken, const char *strDelimit );原创 2014-05-06 08:58:01 · 4095 阅读 · 0 评论 -
#if defined和#if !defined(c语言的宏定义)
因为对于一个大程序而言,我们可能要定义很多常量( 不管是放在源文件还是头文件 ),那么我们有时考虑定义某个常量时,我们就必须返回检查原来此常量是否定义,但这样做很麻烦.if defined宏正是为这种情况提供了解决方案.举个例子,如下: #define .... #define .... .... .... #define a 100 ....转载 2016-07-21 10:45:51 · 363 阅读 · 0 评论 -
linux 练习三 fork函数和exev函数族
编写两个不同的可执行程序,名称分别为a和b,b为a的子进程。在a程序中调用open函数打开a.txt文件。在b程序不可以调用open或者fopen,只允许调用read函数来实现读取a.txt文件。(a程序中可以使用 fork与execve函数创建子进程)。a.c//fork函数 父子进程 共享(复制)文件描述符#include #include #include #incl原创 2017-11-29 12:46:36 · 703 阅读 · 0 评论 -
linux 练习四 共享内存练习
题目:编写两个进程,a和b,利用共享内存技术,a向共享内存写字符串,b从共享内存把字符串读出来,并显示在屏幕上/* 目标 编写两个进程a和b,利用共享内存技术, * a向共享内存写字符串,b从共享内存中读取 * 字符串并显示在屏幕上 */shmwrite.c#include #include #include #include #include #include原创 2017-11-30 09:55:29 · 380 阅读 · 0 评论 -
linux 练习五 如何生成库.so及被C和C++程序可用
题目:实现一个so库文件名称为listupper.so,so文件中实现一个函数,函数名为void upper(const char *src, char *desc),调用update后将参数src所指向的字符串中所有字符转化为大写字母,结果放入desc字符串中。分别用C语言编写一个程序test1,调用libupper.so中的upper函数,用C++语言编写一个程序test2,调用lib原创 2017-11-30 17:10:49 · 333 阅读 · 0 评论 -
linux练习 十一 信号的阻塞和捕捉
#include #include #include #include #include void myfunc(int signo){ if(SIGQUIT == signo) { printf("recv SIGQUIT sig\n"); } else if(SIGINT == signo) { printf原创 2017-12-19 20:01:59 · 288 阅读 · 0 评论 -
linux 练习六 信号的发送与信号处理
题目:实现两个程序mysignal、mycontrl,mycontrl给mysignal发送SIGINT信号,控制mysignal是否在屏幕打印“hello”字符串。//mycontrol.c #include #include #include #include #include int main(int argc , char *argv[]){ pid_t原创 2017-12-02 21:31:42 · 593 阅读 · 0 评论 -
linux 练习六 守护进程_文件锁_系统时间
题目:自己动手实现一个守护进程,当控制台窗口关闭时还可以在后台运行。每隔一秒钟向my.log文件中插入一条记录,记录格式如下:yyyy-mm-dd hh:mi:se 记录内容,其中yyyy为年,mm为月,dd为天,hh为小时,mi为分钟, se为秒。//writelog.c 多进程文件锁互斥写文件#include #include #include #include #i原创 2017-12-05 21:27:08 · 361 阅读 · 0 评论 -
linux 练习七 线程键用有名管道FIFO通信
题目:利用多线程与有名管道技术,实现两个进程之间发送即时消息,实现聊天功能思路:关键在于建立两个有名管道,利用多线程技术,进程A中线程1向管道A写数据,进程B中线程2从管道A读数据,进程A线程2从管道B中读数据,进程B中线程1往管道B中写数据//线程和FIFO练习//pthreadtest.c#include #include #include #include #inc原创 2017-12-07 08:47:31 · 370 阅读 · 0 评论 -
Linux 练习二
实现一个类似于计算器的程序 #include #include #include int caltest(int a,char fuhao,int b);int main(int argc, char*argv[]){ int i = 0; int a = 0; int b = 0; int result = 0; if(argc < 4)原创 2017-11-28 11:37:17 · 174 阅读 · 0 评论 -
ARM 浮点运算详解 另一篇
这篇文章对最近遇到上的 ARM上浮点运算的问题做一个总结。首先,我们先看一下ARM处理器是如何处理浮点运算的。交叉编译器在编译的时候,对于浮点运行会预 设硬浮点运算FPA(Float Point Architecture),而没有FPA的CPU,比如SAMSUNG S3C2410/S3C2440,会使用FPE(Float Point Emulation 即软浮点),这样在速度上就会转载 2016-05-25 12:37:42 · 910 阅读 · 0 评论 -
ARM 浮点运算详解
一:早期ARM上的浮点模拟器:早期的ARM没有协处理器,所以浮点运算是由CPU来模拟的,即所需浮点运算均在浮点运算模拟器(float math emulation)上进行,需要的浮点运算,常要耗费数千个循环才能执行完毕,因此特别缓慢。直到今天,在ARM Kernel配置时,都有如下选项:Floating point emulation --->[ ] NWFPE转载 2016-05-25 12:35:35 · 1716 阅读 · 0 评论 -
C语言中无符号数和有符号数相加问题
32位的int的最大值与最小值,最大值2的31次方-1====pow(2,31) - 1,最小值为负的2的31次方= -pow(2,31)C语言中没有次幂的运算符,,,“^”是异或的运算符。看个题:#include int main() { unsigned int a=6; int b=-20; printf("%d\n",a+b); (a+b)>6转载 2016-01-30 10:25:49 · 1109 阅读 · 0 评论 -
ANSI和UTF-8格式文件的区别
用UE随便新建一个文本文档,输入一个空格,ran原创 2014-05-06 09:06:03 · 1439 阅读 · 0 评论 -
浮点数float 处理注意事项
1.浮点数在内存的表现形式,是指数形式,具体可以看其人的文章,处理的时候需要zhu原创 2014-05-27 16:30:50 · 831 阅读 · 0 评论 -
STM32L151 的ADC的模拟看门狗中断和溢出中断
现场条件:1.AD采集,DMA传输;AD设置为单通道的持续模式,DMA设置为单次模式。AD模拟看门狗设置的上门槛小于AD采集值,下门槛大于AD采样值,当DMA单次结束后,即会发生AD看门狗中断和溢出中断void ADC1_IRQHandler(void){ if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET) { //whi原创 2014-12-08 15:36:46 · 6663 阅读 · 0 评论 -
STM32 ADC中断后,AD继续在采集
AD模拟看门狗中断处理程序如下void ADC1_IRQHandler(void){g_u32IRQ_Cout = DMA_GetCurrDataCounter(DMA1_Channel1); if(ADC_GetITStatus(ADC1, ADC_IT_OVR) != RESET) { //while(1);ADC_ClearITPendingBit(AD原创 2014-12-08 15:42:46 · 6167 阅读 · 0 评论 -
STM32 USART 普通串口应用,调试总结
配置STM32L151CBT6,在普通串口模式。当初没有好好看数据手册,只是看着别人的例子写出来一个程序,虽然效果出来了,但不明白其中一些问题的道理,带着这些问题,问了同事,得到的答案,确实最低级的错误。这说明看数据手册的重要性。看程序和问题如下程序刚初始化时,//设置为发送使能,接收使能USART_InitStructure.USART_Mode = USART_Mode_Rx |原创 2014-12-10 11:01:36 · 1008 阅读 · 0 评论 -
关于memcpy的调试理解
memcpy(addr1, addr2, 个数);;如果addr1和addr2的地址是4的倍数时即字对齐的时候,则该函数运行的就快,如果不是运行的时间就慢,时间差着4倍的关系,估计里面实现的时候有优化。原创 2015-02-06 22:30:47 · 621 阅读 · 0 评论 -
cortex-m3 栈的8字节对齐
cortex-m3 栈的8字节对齐一、什么是栈对齐?栈的字节对齐,实际是指栈顶指针须是某字节的整数倍。因此下边对系统栈与MSP,任务栈与PSP,栈对齐与SP对齐 这三对概念不做区分。另外下文提到编译器的时候,实际上是对编译器汇编器连接器的统称。之前对栈的8字节对齐理解的不透,就在网上查了好多有关栈字节对齐、还有一些ARM对齐伪指令的资料信息,又做了一些实验,把这些零碎的转载 2015-03-18 08:24:20 · 696 阅读 · 0 评论 -
C语言Sprintf及snprintf
sprintf与snprintfint sprintf( char *buffer, const char *format [, argument] ... );除了前两个参数类型固定外,后面可以接任意多个参数。而它的精华,显然就在第二个参数:格式化字符串上。 printf和sprintf都使用格式化字符串来指定串的格式,在格式串内部使用一些以“%”开头的格式说明符(f转载 2015-03-18 08:05:57 · 591 阅读 · 0 评论 -
FatFs 说明
http://blog.csdn.net/qsycn/article/details/9226403FatFs FatFS是一个为小型嵌入式系统设计的通用FAT(File Allocation Table)文件系统模块。FatFs 的编写遵循ANSI C,并且完全与磁盘I/O层分开。因此,它独立(不依赖)于硬件架构。它可以被嵌入到低成本的微控制器中,如AVR, 8051, PIC, ARM转载 2016-01-22 21:13:21 · 535 阅读 · 0 评论 -
llinux C练习十 Tcp通信select实现简易聊天
用select 和Tcp通信实现服务器和客户端两者的聊天//TcpChatServer.c#include #include #include #include #include #include #include #include #include #define RET_VAL(VAL,FUNC_NAME) do{\ if(VAL原创 2017-12-19 14:54:20 · 1185 阅读 · 0 评论