- 博客(132)
- 资源 (9)
- 收藏
- 关注
转载 C语言开发需考虑的细节
(1)函数编写的时候是否借口类型一致 (2) if 是否可以跳出 (3)while、for是否会发生死循环 (4)宏的优先级是否有保证 (5)所有指针使用前是否可能合法 (6) 全局变量是否是多进程共同使用,是否加锁 (7) 嵌套锁是否按照顺序进行,会不会发生死锁 (8) 程序优化的时候是否对部分数据使用了volatile属性 (9) 相同功能的代码是否进行了封装 (10)代码静态
2016-11-14 22:24:39
563
转载 struct深入理解
1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意义属于一个整体的数据组合在一起。从某种程度上来说,会不会用struct,怎样用struct是区别一个开发人员是否具备丰富开发经历的标志。 在网络协议、通信控制、
2016-08-21 12:00:24
2705
原创 Linux环境变量设置
/etc/profile# Ash profile # vim: syntax=sh# No core files by defaultulimit -S -c 0 > /dev/null 2>&1USER="`id -un`"LOGNAME=$USERPS1='[\u@\h \W]\# 'PATH=$PATHHOSTNAME=`/bin/hostname`export USER LOGN
2016-08-09 21:17:04
633
转载 函数指针
typedef DWORD (CALLBACK* LPREGISTERSERVICEPROCESS)(DWORD,DWORD); 定义了一个函数指针类型为 LPREGISTERSERVICEPROCESS,函数返回值为 DWORD,参数为两个 DWORD 类型。函数指针说起来比较麻烦,以带两个 int 参数的函数指针为例,一看就明白:#include <stdio.h>typedef int (*P
2016-07-21 20:47:13
568
原创 linux下用户组添加
Linux下新用户添加useradd newuser_123 //增加用户名passwd newpassword_123//增加用户密码enter new UNIX password:enter new UNIX password:passwd:password update successfullysu rootnewpssword_123方法二:修改/etc/sudoers 文件,找到下面
2016-07-17 08:24:12
783
原创 ftp--Ubuntu与arm板数据传送
1、Ubuntu下查看防火墙状态,sudo ufw status,如状态为活动,则关闭ubuntu的防火墙 ufw disable; 2、ftp 192.168.XX.XX(开发板上的IP地址),输入用户名plg,密码plg;状态如下,代表登录成功;Name (192.168.1.244:wzl): plg331 Password required for plg.Password:230 Us
2016-07-10 21:49:35
846
原创 485ser.c
include include include include include include include include include include include include “netinet/in.h”include “sys/socket.h”include “sys/un.h”include “sqlite3.h”static sqlite3 *syssetdb = NULL;
2016-07-10 21:48:45
1101
转载 linux下tar、zip等压缩、解压命令
=================================================================================下载LOFTER客户端 .tar 解包:tar xvf FileName.tar 打包:tar cvf FileName.tar DirName(注:tar是打包,不是压缩!).gz 解压1:gunzip FileName.gz
2016-07-10 21:47:26
1305
原创 date -s 修改时间
date -s “2016-4-18 15:14:23” char itmp1[5],itmp2[5],itmp3[5],itmp4[5],itmp5[5],itmp6[5]; itmp1 = atoi(tmp1); itmp2 = atoi(tmp2); itmp3 = atoi(tmp3); itmp4 = atoi(tmp4); itmp5 = at
2016-07-10 21:46:57
26773
原创 Linux下开机启动脚本 etc rcS 环境变量 pid判断
#Linux下开机启动脚本/etc/init.d/rcS#!/bin/sh#echo "hello pqm"insmod /pqm/ko/clock_2401_dev.koinsmod /pqm/ko/clock_2401_drv.ko/pqm/ipcfg/ipconfig_eth0.sh/pqm/ipcfg/ipconfig_eth1.shulimit -s 4096BFS_ROOT=/h
2016-07-10 21:46:15
2324
原创 shell编写简单的CGI脚本
用shell编写的简单的cgi脚本简单程序:#!/bin/sh#test1.cgiecho "Content-Type:text/html\n\n"echo ""echo ""echo "hello!"echo "br"echo "the time is:"echo "br"date保存为test1.cgi并将文件放在boa配置文件设定的cgi路径下比如/www/cgi-bin
2016-07-10 21:44:00
3477
原创 Linux下生成ubi文件
先安装 mktools.tar.gz 工具tar xvzf mktools.tar.gz –C /将会在/usr/sbin目录下创建生成相应的工具集。 注意:C是大写的,C后面有个空格,C是改变解压安装目录的意思1、rootfs_qtopia_qt4-slc.ubi文件生成方式同一个错误犯了两次-错误命令-对应的flash不同,因此不能用mkubimage-mlc2 :mkubimage-
2016-07-10 21:42:08
1396
原创 多线程操作数据库
/*******sqlite.c******/#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#includ
2016-07-10 21:41:21
937
原创 Makefile
CC = arm-linux-gcc objs := main.c ade7878.c iedinf.a iedshm.amain: (objs)(objs) {CC} -o main $(objs) -lpthread -lsqlite3 -lm -L. -lwavepqd -lwavectrd -llubodb -ldatdb -leventlogdb
2016-07-10 21:39:51
323
原创 html+js+cgi
<!DOCTYPE HTML><html><head> <title>统计分析</title> <script type="text/javascript"src="tongjifenxi.js"></script> <script type="text/javascript"> function altRows(id){ if(document.getElementsByTa
2016-07-10 21:38:54
2083
原创 VS调试C++项目实例
//emstcp.hifndef _EMSTCP_Hdefine _EMSTCP_Hclass emsTcp { private:public: void tcprun(); emsTcp(){}; ~emsTcp(){};};endif//etcp.cppincludeincludeincludeinclude”emstcp.h”void
2016-07-10 21:36:36
1073
原创 DEV调试C++项目实例
//calc.cppinclude include include include include include include include include include include include “emstcp.h”int emsTcp::calcNumInit() { int i,sum=0; for(i=0;i<=100;i++) {
2016-07-10 21:35:17
3856
原创 C语言数据类型转换
/*– shortTofloat – **/ //shortToFloat(xiebo_tmp) // unsigned short xiebo_tmp[2];float shortToFloat(unsigned short *xiebo_short_tmp) { char pchar[4]; //小端模式 pchar[1] = (xiebo_shor
2016-07-10 21:29:27
513
原创 struct
include stdio.hinclude stdlib.hinclude string.hint main() { struct student { long int num; int age; char *name; }st1={200,16,”zhangdddddddsan”}; str
2016-07-10 21:28:32
650
转载 欢迎使用优快云-markdown编辑器
include “stdio.h”include “time.h”include “sys/time.h”include “stdlib.h”include “signal.h”static int count = 0; void set_timer() { struct itimerval itv; itv.it_value.tv_sec = 3; //timer start
2016-07-08 15:13:55
364
转载 window、ubuntu与arm板文件挂载
ARM开发板与PC通过NFS 网络文件系统挂接,很方便文件的移动,也为我们的开发带来了方便。接下来,我就详细的介绍下如何建立ARM与PC机的挂接。 我是用的UBuntu系统。首先,我们需要在主机上安装nfs服务器,安装过的过程中一并把一些需要的组件也给安装了。安装 NFS 相关组件sudo apt-get install nfs-kernel-server安装完nfs服务器之后,我们需要建立一
2016-07-08 06:09:25
1494
原创 Dell笔记本或者台式机系统重装教程
Dell笔记本系统重装说明 说明:(由于没有Dell的笔记本进行系统重装操作,所以一下步骤信息主要来源于网上资源,与实际操作步骤存在一定偏差,不过大体上应该是没有问题的。重装系统是一个不断尝试的过程,不会对电脑造成什么伤害,所以放心重装。)1、首先,我们需要知道戴尔笔记本的u盘启动快捷键是:F12; Dell台式机U盘启动快捷键是:ESC; 将U盘插入电脑USB口后,按下电脑启动按键,不断按下
2016-05-31 17:28:42
3457
原创 Windows下QWT绘图实例
1、 QWT的下载及安装;参考http://www.jianshu.com/p/d6fb96c3e6b0;文件夹下的qwt-6.1.2是最新的QWT压缩包 2、.pro文件中路径添加:QWT包含的头文件路径,为了移植方便可以将头文件放在新建的Qt工程目录下(如可将路径设置改为INCLUDEPATH += $${PWD}/qwt-6.1.2/include/ ),INCLUDEPATH += F
2016-05-25 07:53:00
612
转载 C/C++中tm结构
在标准C/C++中,我们可通过tm结构来获得日期和时间,tm结构在time.h中的定义如下:#ifndef _TM_DEFINEDstruct tm {int tm_sec; /* 秒 – 取值区间为[0,59] */int tm_min; /* 分 - 取值区间为[0,59] */int tm_hour; /* 时 - 取值区间为[0,23] */int tm_mday; /* 一个月
2016-04-18 09:36:51
5535
原创 多线程同步操作数据库
#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <stdlib.h>#include <malloc.h>#include <e
2016-04-13 09:55:49
1677
转载 *** glibc detected *** free(): invalid pointer: *** glibc detected *** malloc(): memory corruption:
* glibc detected * free(): invalid pointer: * glibc detected * malloc(): memory corruption: * glibc detected double free or corruption (out): 0x00000000005c18a0 ** * glibc detected corrupted doubl
2016-04-11 15:12:37
1602
原创 double free or corruption (fasttop): 0x080ca728
./sqlite_1: double free or corruption (fasttop): 0x080ca728 * 段错误 (核心已转储) 多线程在写入数据库时,出现错误double free or corruption (fasttop): 0x080ca728 原因分析: 1、写一个测试程序,两次free指针,出现上述错误。 sqlite3_free_tabl
2016-04-11 15:11:08
2698
原创 linux下ntp对时设置
1、首先在 /etc/profile 中添加环境变量: ntp=/mnt export ntp PATH=$PATH:$HOME:$ntp: export PATH2、在开发板上ping www.baidu.com,查看网络通信是否正常;如果ping不同,用ifconfig查看IP地址,MAC地址,网关等信息;可以在系统下加上”udhcpc -i eth0 ” –自动获取IP,重启系统
2016-04-11 15:05:24
11034
转载 linux下获取当前时间(精确到毫秒)
#include <stdio.h> #include <time.h> #include <sys/time.h> void sysLocalTime() { time_t timesec; struct tm *p; time(×ec); p = localtime(×ec);
2016-04-07 09:06:10
7152
转载 shell基本语法及应用
语法if[ $var -eq 0 ] && action;-gt :大于-lt: 小于-ge: 大于等于-le: 小于等于-a: 逻辑与-o: 逻辑或字符串的比较,最好使用双中括号[[ $str1 == $str2 ]][[ $str != $str ]]支持 > 、 <判空:-z 非空: -nif更友好:if [[ -n $str ]] && [[ -z $str2 ]];
2016-04-01 15:49:59
354
原创 Ubuntu与开发板之间使用ftp上传及下载文件
1、Ubuntu下查看防火墙状态,sudo ufw status,如状态为活动,则关闭ubuntu的防火墙 ufw disable; 2、ftp 192.168.XX.XX(开发板上的IP地址),输入用户名plg,密码plg;状态如下,代表登录成功;Name (192.168.1.244:wzl): plg331 Password required for plg.Password:230
2016-04-01 15:31:53
4041
原创 sqlite3基本用法
linux系统下调用sqlite3库函数实现基本的数据库创建,查询,更改功能。#include <sys/types.h>#include <sys/socket.h>#include <linux/in.h>#include <linux/un.h>#include <string.h>#include <signal.h>#include <stdio.h>#include <st
2016-04-01 10:31:19
529
转载 boa.conf基本配置详解
Port 80User rootGroup rootErrorLog /dev/consoleAccessLog /dev/nullServerName friendly-armDocumentRoot /pqm/www/test/DirectoryIndex rtd.htmlKeepAliveMax 1000KeepAliveTimeout 10MimeTypes /etc/m
2016-04-01 10:21:12
5165
原创 sqlite3不同编译器编译问题
1、在http://www.sqlite.org/下载最新的sqlite3源码包;2、如果是用于linux下arm-linux-gcc编译,则将开发包在linux下解压后,打开文件夹, arm-linux-gcc -fPIC -shared shell.c sqlite3.c -o libsqlite3_arm-linux-gcc.so ,编译成功后,将libsqlite3_arm-linux-gc
2016-03-31 15:46:51
700
转载 linux c常用字符串处理函数
一、puts名称:puts功能: 向显示器输出字符串。头文件:#include .h>函数原形:int puts(const char *s);参数: s 字符串 返回值: 成功返回输出的字符数,失败返回EOFput函数与printf函数在字符串输出中的区别:puts在输出字符串时,遇到'\0'会自动终止输出,并将'\0'转换为'\n'来输出。Printf在输
2016-03-31 10:27:40
502
转载 linux c常用字符串处理函数
一、puts名称:puts功能: 向显示器输出字符串。头文件:#include .h>函数原形:int puts(const char *s);参数: s 字符串 返回值: 成功返回输出的字符数,失败返回EOFput函数与printf函数在字符串输出中的区别:puts在输出字符串时,遇到'\0'会自动终止输出,并将'\0'转换为'\n'来输出。Printf在输
2016-03-31 09:40:59
473
原创 linux下环境变量、启动脚本、进程判断设置
[root@ /]# vi /filename/filename.sh insmod /filename/ko/clock_2401_dev.ko insmod /filename/ko/clock_2401_drv.ko /filename/ipcfg/ipconfig_eth0.sh
2016-03-30 14:18:17
854
原创 argc与**argv理解
//argv_test.c#include<stdio.h>int main(int argc,char **argv)//指向字符串的指针{ unsigned int a; unsigned short uchar[2]; uchar[0] = *argv[1]; uchar[1] = *argv[2]; a= atoi(argv[1]); printf("a = %d *argv[
2016-03-29 22:12:06
650
原创 Qt4程序移植到Qt5的问题
/* * QT4移植程序到Qt5出现的问题:#include<QMainWindow>no such file or dirctory * 解决办法:在*.pro文件里添加:QT += widgets更改#include <QtGui>为#include <QtWidgets>程序现在应该就可以运行了,但是有时可能需要更加明确的包含#include <QtWidgets/QMai
2016-03-25 11:15:02
750
转载 linux下read/write编程
read/write read函数从打开的设备或文件中读取数据。#include <unistd.h> ssize_t read(int fd, void *buf, size_t count); 返回值:成功返回读取的字节数,出错返回-1并设置errno,如果在调read之前已到达文件末尾,则这次read返回0参数count是请求读取的字节数,读上来的数据保存在缓冲区buf中,同时文件的当前
2016-03-23 15:02:32
656
Labview实现串口通信与CRC校验并解析缓冲区数据
2016-01-15
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人