自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(132)
  • 资源 (1)

原创 linux 程序绑定CPU运行

#include "../common.h"#include <sched.h>int main(){ cpu_set_t mask; CPU_ZERO(&mask); CPU_SET(0, &mask);//绑定第0号核,如果绑定的核不存在,则不会绑定成功,但不影响程序正常运行 sched_setaffinity(0,sizeof(mask),&mask); //0表示绑定本进程 while(true) { .

2020-09-11 11:26:28 16

原创 shell命令获取GIT标签的作者

username=`git log tag_name | grep 'Author' |sed -n 1p |awk '{print $2}'`echo $usernametag_name 为标签名

2020-09-10 14:53:39 22

原创 Django 使用channels

安装:python -m pip install -U channels -i https://pypi.tuna.tsinghua.edu.cn/simple/指定源安装,否则会有很多依赖包下载的时候超时。如果遇到Twisted安装错误,可以单独下载再用pip安装:https://pypi.org/simple/twisted/...

2020-09-02 20:17:29 65

原创 Linux 文件锁范例,获取配置文件值,得到文件大小、路径,检测文件是否存在、监视文件改变等

当多个进程对一个文件进行操作时,常常需要添加保护,这时就需要用到文件锁。范例内容:一个进程对.tfreq.ini进行写操作,当这个进程在写的过程中,不允许其它进程对文件进行操作,当它结束写之后,另一个线程再读取其中的内容。锁的类lock.h:class file_locker{public: bool file_lock(int file_fd) //加锁 { struct flock my_lock; my_lock.l_type =

2020-09-01 15:50:42 68

原创 Django 动态显示时间

从后端获取时间,然后每隔一秒自动动态显示urls.py:from django.contrib import adminfrom django.urls import pathfrom . import dynamic_timefrom django.conf.urls import urlurlpatterns = [ path('admin/', admin.site.urls), url(r'^dynamic_time/$', dynamic_time.get_ti

2020-08-28 14:42:02 50

原创 CMAKE 之 为每个可执行程序单独添加编译参数

用SET_TARGET_PROPERTIES来设置 COMPILE_FLAGS使用范例:SET_TARGET_PROPERTIES(exeName PROPERTIES COMPILE_FLAGS"-O2 -Wall")如:父CMakeLists中设置:set(CMAKE_CXX_FLAGS "-pipe -O2 -std=gnu++11 -Wall -W -D_REENTRANT -fPIC -Wno-strict-aliasing -Wno-unused-parameter -no-...

2020-08-26 10:48:43 69

原创 条件编译某一段代码

int main(){#ifdef _Aprintf("AAAAAAAAAAAAAAAAAAAA\n");#endif#ifdef _Bprintf("bbbbbbbbbbbbbbbbb\n");#endif#ifdef _Cprintf("ccccccccccccccc\n");#endifprintf("???????????????????\n");}编译的时候添加编译参数就可以了:g++ 1.cpp -std=c++11 -D _Abekl@bekl:~.

2020-08-25 12:01:09 39

原创 ubuntu 下使用Django

安装pip:sudo apt-get install python3-pip安装Django:sudo pip3 install Django==2.2.15 -i https://pypi.tuna.tsinghua.edu.cn/simple安装好之后进入python命令行,查看是否安装成功以及版本号:ubuntu:/usr/bin$ python3Python 3.5.2 (default, Jul 17 2020, 14:04:10) [GCC 5.4.0 201606

2020-08-20 19:42:01 71

原创 C++异常处理

C++异常处理涉及到三个关键字:try、catch、throw。 throw:用于抛出异常 catch:用于捕捉异常 try:块中的代码标识将被激活的特定异常。它后面通常跟着一个或多个 catch 块。如果有一个块抛出一个异常,捕获异常的方法会使用try和catch关键字。try 块中放置可能抛出异常的代码,try 块中的代码被称为保护代码。执行一个throw时,throw之后的语句将不再被执行(类似于return),程序会跳到与之匹配的ca...

2020-08-15 10:47:05 38

原创 C++模板

模板定义:模板就是实现代码重用机制的一种工具,它可以实现类型参数化,即把类型定义为参数, 从而实现了真正的代码可重用性。模版可以分为两类,一个是函数模版,另外一个是类模版。函数模板如下面的例子:int func_max(int a, int b){ return a>b?a:b;} 求两个整数的最大值,func_max()的参数为int类型,如果我们需要求两个float型数的最大值,必须定义一个几乎一模一样的函数,这样就很容易造成代码的冗杂和重复。...

2020-07-31 23:42:05 65 1

原创 ubuntu 16.04 创建ftp服务器

首先检查是否安装了ftp服务器:vsftpd -version如果没有安装则安装:sudo apt-get install vsftpd新建一个用户文件夹用于ftp工作目录:mkdir /home/ftp创建ftp用户:sudo useradd -d /home/ftp -s /bin/bash ftpname为新建的用户设置密码:passwd ftpname打开vsftpd.conf,设置属性值:local_enable=YESwrite_enab.

2020-07-14 15:35:33 85

原创 回调函数范例以及讲解

回调函数: 回调函数就是一个通过函数指针调用的函数。如果你把函数的指针(地址)作为参数传递给另一个函数,当这个指针被用来调用其所指向的函数时,我们就说这是回调函数。回调函数不是由该函数的实现方直接调用,而是在特定的事件或条件发生时由另外的一方调用的,用于对该事件或条件进行响应。 回调函数使用范例:#include "../common.h"typedef int (*callBackFun) (char *p); //定义一个函数指针类型 callBackFun...

2020-06-29 19:56:24 114 2

原创 linux自动批量ping网络脚本

#!/bin/bashif [ -z "$1" ];then echo -e "\033[40;33mUsage: /bin/bash ping.sh 192.168.16\033[40;37m" exit 1fifor ((i=1;i<=254;i++));do ping -c 1 $1.$i > /dev/null 2>&1 if [ $? -eq 0 ];then echo -e "\033[40;32.

2020-06-10 10:40:29 112

原创 题目

int main(){ printf("input n="); int n = 0; int An = 0; scanf("%d",&n);getchar(); if(n==1 || n==2) { An = n; } else { if(n%2==0) { An = 3*((n-2)/2) + 1; } else .

2020-06-01 18:32:11 51

原创 LINUX固定串口名(固定串口号)

在/etc/udev/rules.d/20-usb-serial.rules 中新加最后KERNEL=="ttyUSB*", ATTRS{idVendor}=="0403", ATTRS{idProduct}=="6001", MODE:="0777", SYMLINK+="rplidar"idVendor和idProduct通过lsusb可查询;rplidar为固定名,设置成功后可通过串口助手打开设置之后重新拔插外设即可然后执行:#service udev reload#servic.

2020-05-25 09:10:05 340

原创 linux下宏定义带参,获取代码所在行以及文件和函数

#include "../common.h"#define my_printf_a(level,__format__,...) \ my_printf(level,__format__"<%s %d %s>", ##__VA_ARGS__,__FILE__,__LINE__, __FUNCTION__);int my_printf(int level,const c...

2020-04-07 16:24:16 165

原创 linux下读写锁与queue队列使用范例

#include "common.h"#include <queue>#define _COR_DATA_LEN 2048typedef struct{ char data_buf[_COR_DATA_LEN];}s_cor;queue <s_cor> myq;pthread_rwlock_t rwlock;void *recv_func(vo...

2020-03-18 08:55:49 143

原创 C++二维容器vector的使用

using namespace std;typedef struct{ int a; int b;}s_test;int main(){ vector<vector<s_test>> v_test; vector<s_test> v_test1; vector<s_test> v_test2; v_test.push_b...

2020-02-20 00:30:38 203

转载 ubuntu16 ------ supervisor 进程守护

安装(注意到官网查看版本,安装的时候可以选择安装最新版)直接用sudo apt-get install supervisor 安装不一定可用sudo easy_install(pip install) supervisor==4.1.0然后生成配置文件(root权限):echo_supervisord_conf > /etc/supervisord.conf再然后...

2020-02-17 20:23:57 38

原创 ubuntu16.04 PHP

sudo apt-get install apache2sudo apt-get install php7.0 libapache2-mod-php7.0cd /var/www/html/sudo apt-get install php7.0-mysqlsudo apt-get install composersudo /etc/init.d/apache2 restart

2020-01-18 17:34:26 35

原创 C语言给串口发送数据

#include"haeundae.h"static int convbaud(unsigned long int baudrate){ switch (baudrate) { case 2400: return B2400; case 4800: return B4800; case 9600: ...

2019-11-20 11:08:48 757

原创 Linux TCP服务器和客户端函数

my_socket.c:#include "my_socket.h"int create_tcp_client(const int server_port, const char* server_ip){ int sock_fd = -1; int ret; struct sockaddr_in sad...

2019-11-19 20:40:25 138

原创 第一个pyqt小软件

URD360.py:#!/usr/bin/python3.5import funcimport sysimport os#引入模块,基本控件位于pyqt5.qtwidgetsfrom PyQt5.QtWidgets import QApplication, QWidget, QDesktopWidgetfrom PyQt5 import QtCore, QtGui, QtWidg...

2019-11-06 09:22:38 76

原创 pyQt5 时时输出显示(PyCharm QtDesigner PyUIC开发)

用QtDesigner工具进行界面绘制,注意各种插件的命名,以免生成的代码自己都看不懂。绘制好之后,再利用PyUIC把.ui文件转为.py文件。PyCharm可以集成QtDesigner PyUIC这两种工具。func.py:# -*- coding: utf-8 -*-# Form implementation generated from reading ui file ...

2019-10-31 10:38:34 865

原创 python TK库简单应用(实时显示子进程输出)

#!/usr/bin/python3.5# -*- coding: UTF-8 -*- import tkinter # 导入 Tkinter 库import tkinter.messagebox # 导入消息框库import os #导入OS库import subprocessdef show_something(): tki...

2019-10-25 15:24:56 398

原创 替换字符串内容函数

int strrpc(char *str, char *oldstr, char *newstr, int len){ char *bstr = (char *)malloc(len); //转换缓冲区 memset(bstr, 0, len); int i = 0; for (i = 0; i < strlen(str); i++) { ...

2019-10-22 10:13:30 51

原创 C语言可变参数——传递给子函数

编写一个类似于sprintf的函数,与sprintf不同的是,参数多了一个等级参数,为unsigned char 型。代码如下:#include <stdio.h>#include<stdarg.h>int my_sprintf(const unsigned char level,const char *format,...){ char my_dat...

2019-10-21 09:56:47 1093

原创 进程间通信——消息队列范例

消息队列和共享内存相似,可以用于进程间通信。1.c#include "../common.h"#define MSG_FILE "./1.c"struct my_msg{ long int mtype; //必须为长整型 char mbuf[80];};int main(){ int msqid = -1; key_t key = -1; struct my...

2019-10-15 11:27:06 58

原创 C语言配置文件读取以及修改

#include "paramRead.h"#include "common.h"/* 读取字符类型的值 */int GetIniKeyString(char *dst, const char *title, const char *key, const char *filename){ FILE * fp = NULL; int f...

2019-10-14 17:05:11 285

原创 linux 定时操作 crontab (V**N**布置)

系统 Ubuntu 16.04使用 contab -e 可以为当前用户添加定时任务。使用 crontab -l 可以查看当前用户定时任务。添加定时任务的时候,注意需要指定环境,具体的缘由网上可查。 ubuntu 16.04 VPN的设置 A.切换到root用户下:...

2019-10-14 16:33:22 76

原创 利用Cubic制作Ubuntu制作系统

安装:sudo apt-add-repository ppa:cubic-wizard/releasesudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 6494C6D6997C215Esudo apt updatesudo apt install cubic使用方式很简单,现在官网下载一个Ubunt...

2019-09-17 15:36:57 997

原创 代码检测工具——PVS-Studio Analyzer

下载地址:https://www.viva64.com/en/pvs-studio/激活码:用户:Ru.Board密码:UX9G-38X9-1HNH-0B0F0执行如下命令可以激活:pvs-studio-analyzer credentials Ru.Board UX9G-38X9-1HNH-OBOF今天刚用,也只会用一点点。写了一个脚本进行使用(pvs.sh)...

2019-08-28 17:30:01 852

原创 结构体对齐(字节计算,包括位结构体)

结构体对齐规则:(1)每个成员分别按自己的对齐字节数和指定对齐字节数(Linux 64位默认为8)小的那个对齐,这样可以最小化长度。如在32bit的机器上,int的大小为4,因此int存储的位置都是4的整数倍的位置开始存储。(2)复杂类型(如结构)的默认对齐方式是它最长的成员的对齐方式,这样在成员是复杂类型时,结构体数组的时候,可以最小化长度。(3)结构体对齐后的长度必须是成员中最大的对...

2019-08-16 17:41:27 123

转载 ubuntu 使用 ssh

sudo apt install openssh-client #本地主机运行此条,通常是默认安装client端程序的sudo apt install openssh-server #服务器运行此条命令安装连接服务器:ssh -X 用户名@IP转载的文件传输:使用方式如下:1、上传本地文件到服务器scp /path/filename username@server...

2019-08-14 11:22:53 56

转载 到达一定数量文件自动删除最久时间文件,C语言获取shell命令结果

#!/bin/bash#rm_file>14dayReservedNum=4 #保留文件数量rm_file_dir='/home/sean/sean/rmfile' #需要删除文件的路径cd $rm_file_dir #进入文件夹RootDir=$(cd $(dirname $0); pwd) #当前文件路径 Fi...

2019-08-05 15:21:10 733

原创 自动重启某个网卡脚本(根据IP确定网卡)

#! /bin/sha=`ifconfig | grep -B1 "192.168.6.88"`#echo $ab=`printf $a`#echo $bsudo -S ifconfig $b down <<EOF123456EOFsleep 5sudo -S ifconfig $b up <<EOF123456EOF

2019-07-16 11:02:05 455

原创 自动添加版本号脚本(写在VERSION)

#! /bin/bash a=10da=`date +%Y/%m/%d-%H:%M:%S` #获取时间version=''#git status -s | grep -Ei "Untracked files" && a=0#判断当前分支状态是否被改变g=`git status -s` if [ "$g" != "" ];then a=0 #...

2019-06-28 15:18:11 882

原创 whiptail 脚本对话框

#!/bin/sh#从VERSION文件中读取版本号file='VERSION'{ read version}<$fileif [ $1 -eq "1" ];then OPTION=$(whiptail --title "ARM CONTROL(version: $version)" --menu "Please select work mode:" 15 60 4 \...

2019-06-21 17:30:03 154

转载 shell脚本判断文件是否存在

文件不存在则创建:if [ ! -d "/data/" ];thenmkdir /dataelseecho "文件夹已经存在"fi文件存在则删除:if [ ! -f "/data/filename" ];thenecho "文件不存在"elserm -f /data/filenamefi判断文件夹是否存在:if [ -d "/data/" ];thene...

2019-06-21 17:09:06 1727

原创 clang-format 一键修改代码格式

查看软件版本:sudo apt-cache search clang-format下载:sudo apt-get install clang-format-x.x编写.clang-format配置文件:# 语言: None, Cpp, Java, JavaScript, ObjC, Proto, TableGen, TextProtoLanguage: Cpp# B...

2019-06-20 17:29:15 951

dynamic_time.zip|dynamic_time.zip

基于Django 的动态显示时间和时区

2020-08-28

空空如也

空空如也
提示
确定要删除当前文章?
取消 删除