- 博客(48)
- 资源 (35)
- 问答 (1)
- 收藏
- 关注
原创 用tensorflow的conv2d卷积实现均值blur
import numpy as npimport matplotlib.pyplot as pltimport cv2import tensorflow as tffrom tensorflow.python.framework import graph_utilimport timeblur_size = 31s_time = time.time()# (height, width, channel)BGR -- > HWC,RGB# img = cv2.imread(
2022-03-16 18:58:15 352
原创 多线程信号cond_wait()为什么使用while
int empty_slot = 5;producer(){ while(1) { lock(&empty_cnt_lock); while(empty_slot == 0){ cond_wait(&empty_cond, &empty_cnt_lock); } empty_slot --; unlock(&empty_cnt_lock); .
2021-07-10 10:12:52 443
原创 将字符串作为shell命令执行
eval: eval [arg ...] Execute arguments as a shell command. Combine ARGs into a single string, use the result as input to the shell, and execute the resulting commands. Exit Status: Returns exit status of command or success if.
2021-07-08 14:13:07 5459
原创 sizeof用法
#include <stdio.h>#include <stdlib.h>void test(char *p){ printf("p: %lu %s \n", sizeof(p), p);}int main(){ char str[30] = "zhang"; char str_two[7][8] = {0}; printf("str: %lu %s \n", sizeof(str), str); printf("str_two: %lu \n", s.
2021-05-24 17:51:26 119
原创 strncat越界,踩内存
#include <string.h>#include <stdio.h> #include <stdlib.h>int main(){ char *a = (char *)malloc(sizeof(char) * 10); char w[30]="WWWWWWWWWWWWWWWWWWWWWWWWWWWW"; printf("w[30]: %c \n", w[30]); //越界 memcpy(a, "123456789", 10); mem.
2021-05-21 16:52:09 690
原创 VirtualBox 中虚拟机扩容ubuntu硬盘空间,完全图形化操作
1、关闭虚拟机2、打开cmd窗口,进入到VirtualBox目录下(C:\Program Files\Oracle\VirtualBox),可以看到改目录下面有VBoxManage.exe3、VBoxManage modifyhd <虚拟硬盘路径> --resize 204800,例如:扩容到200GB,命令如下: VBoxManage modifyhd "D:\vm_ubuntu\ubuntu18.04\ubuntu18.04.vdi" --resize 204800...
2021-05-20 12:18:41 362 1
原创 获取文件大小fseek、stat、fstat
#include <sys/stat.h>#include <unistd.h>#include <stdio.h>#include <fcntl.h>/*************************************************************************struct stat { dev_t st_dev; //文件的设备编号 ino_t s.
2021-05-18 18:06:53 379
原创 dirname与basename的用法注意
#include <stdio.h>#include <stdlib.h>#include <string.h>#include <libgen.h>int main(){ char in_filename[128] = "/tmp/test_name.file"; char out_filename[128]; char *dirc = NULL, *basec = NULL, *bname = NULL, *dname = NULL;.
2021-05-18 11:30:22 210
原创 shell 变量名中包含变量
eval接受一个字符串作为它的参数,并对它进行评估,就好像你在命令行上键入了该字符串一样。(如果你传递了几个参数,它们首先与它们之间的空格相连接。)eval echo \${$n}运行传递给的参数eval。扩展后,参数是echo和${1}。所以eval echo \${$n}运行命令echo ${1}。string=idid=1stream_1="111111"cmd="{$(eval echo \${stream_${id}}), 222222}"ech...
2020-10-22 18:54:21 5982
原创 Makefile中空格与tab
makefile实际上是在一个文件中用两种完全不同的“语言”编写的。recipe(运行编译器,echo等的命令)是用shell脚本语法编写的。不在recipe中的其余makefile是用makefile语法编写的。为了使make能够区分配方和不是配方的东西,它使用了TAB字符。因此,以TAB开头的行被假定为recipe的一部分,因此它们是shell脚本并传递给shell进行解析。而不以TAB开头的行不能成为recipe的一部分,它们必须是make语法,用空格。ifneq是makefile
2020-09-14 10:04:57 3256 1
原创 数组名 、 函数名 和 数组名取地址 、 函数名取地址
#include <stdio.h>#include <stdlib.h>#include <string.h>void test(){ printf("123456\n");}int main(){ char a[10]; printf("&a:%p, a:%p, &a[0]:%p \n", &am...
2020-03-04 13:09:36 712
原创 从内存中保存yuv文件
数据是NV12YYYYYYYYYYYYYYYYUVUVUVUV frame_y_buf = (u8 *)malloc(width * height); if (frame_y_buf == NULL) { printf("allocate frame_y_buf error, line:%d!\n", __LINE__); rval = -1; b...
2020-01-16 17:49:03 643
原创 获取数组的第一大值和第二大值
#include <stdio.h>#include <stdlib.h>#include <string.h>int arry[10] = {8, 2, 4, 6, 8, 3, 1};int main(){ int n = 0, i = 0 ,j = 0; int max_value = 0, max_value_index = 0; i...
2020-01-15 12:16:56 425
原创 Win10 打开OpenSSH
一、安装OpenSSH 客户端 、OpenSSH 服务器设置 -> 管理可选功能 -> 添加功能 -> [OpenSSH 客户端] [OpenSSH 服务器]二、启动服务并设置为自动启动SSH服务 -> 启动SSH服务 ->属性 -> 启动选择 -> 自动ubuntu$ scp 1.txt xxx@company@1...
2019-12-04 15:18:30 517
转载 Linux使用mount挂载Windows共享文件夹
一.首先在本地主机上选择你要共享的文件夹,右击“属性”-“共享”-“高级共享”-勾选“共享此文件”-设置共享名-“权限”-“添加”-“高级”-“立即查找”-“选择本地的用户名”然后一路确定回去。这样就实现了文件的共享123456二.我们要只到自己的ip地址保证与虚拟机在一个网断下。在cmd弹出终端,输入ipconfig查询本地机的ip地址然后在u...
2019-12-03 13:59:04 370
原创 pthread_mutex_lock 与 pthread_cond_signal 用法
写线程可以多次覆盖写,读线程必须在buffer中有数据后才能读,并且不能重复读取。Pthread_cond_singal释放信号后,即使没有Pthread_cond_wait,信号也会马上复位。static pthread_mutex_t mutex;static pthread_cond_t count_nonzero;static int lpr_completed_fl...
2019-11-20 16:52:52 655
原创 Linux 、ARM相关网址
在线Linux命令手册 中文http://linux.51yip.com/arm相关https://developer.arm.com/GNU官方地址https://www.gnu.org/c标准库源码ftp://ftp.gnu.org/gnu/glibc
2019-10-25 15:50:21 206
转载 git cherry-pick 没有merge的代码到本地
场景:程序员A提交了一个commit到gerrit上,我们叫他为commit_id1,但是还没有review,那就是没有入库,程序员B想再本地拿到这个commitd_id1,既然这个提交没有入库,很明显,B单纯执行git pull是拿不到这个提交的,那他要怎么办呢, 目前我想到的有几种方式:第一种如果只是单纯了改了很少量的文件,我们不排斥程序员A把这几个文件直接发给B。如果改动比较大呢?第...
2019-10-25 14:48:39 5598 2
原创 tar解压tar.xz文件
linux kernel官网https://www.kernel.org/在linux下解压tar.xz文件步骤1、解压# tar xvfJp ***.tar.xz 2、创建# tar cvfJp xxx.tar.xz xxx
2019-08-21 11:23:38 835
原创 shell脚本中中获取Ubuntu的版本号和系统架构等
#!/bin/bashrelease_num=$(lsb_release -r --short)code_name=$(lsb_release -c --short)hw_arch=$(uname -m)echo "release_num= $release_num"echo "code_name= $code_name"echo "hardware Architecture =...
2019-08-21 09:58:29 3303
转载 信号的用法,signal函数、sigaction函数及信号集(sigemptyset,sigaddset)操作函数
信号是与一定的进程相联系的。也就是说,一个进程可以决定在进程中对哪些信号进行什 么样的处理。例如,一个进程可以忽略某些信号而只处理其他一些信号;另外,一个进程还可以选择如何处理信号。总之,这些总与特定的进程相联系的。因此,首 先要建立其信号和进程的对应关系,这就是信号的安装登记。Linux 主要有两个函数实现信号的安装登记:signal和sigaction。其中signal在系统调用的基础上实...
2019-07-30 17:03:45 1376
转载 pthread用法
pthread_create()函数函数简介 pthread_create是UNIX环境创建线程函数头文件 #include<pthread.h>函数声明 int pthread_create(pthread_t *restrict tidp,const pthread_attr_t *restrict_attr,void*(*start_rtn)(...
2019-07-30 16:56:29 719
转载 信号量Semaphore的用法
信号量(Semaphore)信号量和互斥锁(mutex)的区别:互斥锁只允许一个线程进入临界区,而信号量允许多个线程同时进入临界区。不多做解释,要使用信号量同步,需要包含头文件semaphore.h。主要用到的函数:int sem_init(sem_t *sem, int pshared, unsigned int value);其中sem是要初始化的信号量,pshare...
2019-07-30 16:30:44 896
转载 pthread_mutex_lock 相关
互斥量(mutex)就是一把锁。多个线程只有一把锁一个钥匙,谁上的锁就只有谁能开锁。当一个线程要访问一个共享变量时,先用锁把变量锁住,然后再操作,操作完了之后再释放掉锁,完成。当另一个线程也要访问这个变量时,发现这个变量被锁住了,无法访问,它就会一直等待,直到锁没了,它再给这个变量上个锁,然后使用,使用完了释放锁,以此进行。这个即使有多个线程同时访问这个变量,也好象是对这个变量的操作...
2019-07-30 16:10:21 663
转载 linux下c语言的多线程编程
原文地址:https://www.cnblogs.com/nfcm/p/7653433.html我们在写linux的服务的时候,经常会用到linux的多线程技术以提高程序性能多线程的一些小知识:一个应用程序可以启动若干个线程。线程(Lightweight Process,LWP),是程序执行的最小单元。一般一个最简单的程序最少会有一个线程,就是程序本身,也就是主函数(...
2019-07-24 18:42:40 156
原创 scanf不会停止等待输入
#include <stdio.h>#define CLEAR_BUFFER do { \ int c_tmp; \ while ((c_tmp = getchar()) != EOF && c_tmp != '\n'); \ } while (0)/* #define CLEAR_BUFFER do { \ for (int c_tmp; (...
2019-07-01 15:18:49 3004 1
转载 续行符号\
1、把一个预处理指示写成多行要用“\”续行,因为根据定义,一条预处理指示只能由一个逻辑代码行组成。2、C代码写成多行则不必使用续行符,因为换行在C代码中只不过是一种空白字符,在做语法解析时所有空白字符都被丢弃了,C中以;结束。...
2019-06-05 16:41:37 922
原创 shell删除当前目录除一些文件(目录)后的其他文件
1、copy备份然后删除save_file_and_del_other(){ print_info "save_file_or_dir in" mkdir ../copy_tmp for tmp in "$@"; do print_info "save $tmp" cp -p -${debug_opt} $tmp ../copy_tm...
2019-06-04 14:54:04 2252
原创 C语言判断机器CPU大小端模式的两种方法
大端模式,是指数据的高字节保存在内存的低地址中,而数据的低字节保存在内存的高地址中。小端模式,是指数据的高字节保存在内存的高地址中,而数据的低字节保存在内存的低地址中。第一种方法思路:利用指针的强制类型转换,取到低地址#include <stdio.h> int main() { int a; a = 0x12345678; ...
2019-05-30 17:48:19 624
原创 cmder命令行提示符(λ改成$)
更改cmder命令行提示符(λ改成$),网上的方式一般都是:进入cmder的目录,进入vendor,修改clink.lua文件。我发现改成{bash::bash}后,修改clink.lua文件也没用。可以尝试修改C:\cmder\vendor\git-for-windows\etc\profile.d\git-prompt.sh中的 PS1="$PS1"'λ ' ...
2019-05-29 13:45:26 3142 4
转载 ubuntu 下播放 yuv 格式的文件&预览Raw格式图片
1、ubuntu 下播放 yuv 格式的文件1)使用ffplaysudo apt-get install ffmpeg查看图片ffplay -f rawvideo -video_size 640x360 test_input_640x360_bak.yuv另外,windows下面可以使用yuvplayer.exe,打开需要设置size,软件下载链接http://...
2019-04-29 15:58:53 7638
转载 C语言字节对齐问题详解
引言 考虑下面的结构体定义:1 typedef struct{2 char c1;3 short s; 4 char c2; 5 int i;6 }T_FOO; 假设这个结构体的成员在内存中是紧凑排列的,且c1的起始地址是0,则s的地址就是1,c2的地址是3,i的地址是4。 现在,我们编写一个简单的程序:...
2019-03-22 18:23:27 765
转载 Repo 的使用小结
转载:https://www.cnblogs.com/v2m_/p/7060832.html一、安装创建目录和修改环境变量$ mkdir ~/bin$ PATH=~/bin:$PATH下载repo代码$ curl https://storage.googleapis.com/git-repo-downloads/repo > ~/bin/repo$ chmod a...
2019-01-23 14:13:26 473
转载 Android.mk常用指南
转载:http://huzhengyu.com/2018/07/21/Android-module-make/本文基于Android O平台进行分析Android.mk对于熟悉Android源码的人来说并不陌生,虽然Google开始逐步用Android.bp来替换Android.mk,但是其实质并没有发生什么变化,只是又在Android.mk的基础上又封装了一层。静态库与动态库...
2019-01-16 16:58:38 493
转载 include相关
1、尖括号 #include <stdio.h>: 编译器会去 系统配置的库环境变量 和 用户配置的路径去搜索,而不会在项目的当前目录去查找,一般用于包含标准的库头文件。系统目录指:编译时-I指定的目录,默认路径以gcc为例, 在命令行运行 echo | gcc -E -v - 查看2、双引号 #include "stdio.h": ...
2019-01-16 16:48:43 187
转载 android L 关机流程图
转载:https://blog.csdn.net/hovan/article/details/42495379下面是简单的流程图,从java到kernel层。ShutdownThread.java文件stop playing music,因为后面可能要playing shutdown music.代码如下:private static void beginShutdownSeq...
2019-01-04 17:38:22 314
MTK6753 linux版下载工具 SP_Flash_Tool_exe_Linux_v5.1516.00.100.zip
2015-07-20
MTK6753 windows版下载工具 SP_Flash_Tool_exe_Windows_v5.1516.00.zip
2015-07-20
ubuntu任何目录下运行adb 附adt-bundle-linux-sdk.part5.rar
2015-07-17
ubuntu任何目录下运行adb 附adt-bundle-linux-sdk.part4.rar
2015-07-17
ubuntu任何目录下运行adb 附adt-bundle-linux-sdk.part3.rar
2015-07-17
ubuntu任何目录下运行adb 附adt-bundle-linux-sdk.part2.rar
2015-07-17
ubuntu任何目录下运行adb 附adt-bundle-linux-sdk.part1.rar
2015-07-17
bazel-0.24.1-installer-linux-x86_64.sh.zip
2019-04-27
bazel-0.24.1-installer-linux-x86_64.sh
2019-04-27
db读取工具
2018-05-30
Linux C程序设计_王者归来_教学视频.part5.rar 【part1-part5】
2018-04-01
Linux C程序设计_王者归来_教学视频.part4.rar 【part1-part5】
2018-04-01
Linux C程序设计_王者归来_教学视频.part3.rar 【part1-part5】
2018-04-01
Linux C程序设计_王者归来_教学视频.part2.rar 【part1-part5】
2018-04-01
Linux C程序设计_王者归来_教学视频.part1.rar【part1-part5】
2018-04-01
GAT -----part2/共2部分
2016-07-11
GAT -----part1/共2部分
2016-07-11
vim的边框有大于号,是ctag没有找到定义吗?还是什么原因?怎么去除?强迫症表示不能忍
2019-09-27
TA创建的收藏夹 TA关注的收藏夹
TA关注的人