12 2019 档案

摘要:文本分析,取出/etc/password中shell出现的次数 答案1: cat /etc/passwd | awk -F: '{if ($7!="") print $7}' | sort | uniq -c /etc/passwd 中的数据是以:隔开的 sort是将文件中的每一行作为一个单位,互相 阅读全文
posted @ 2019-12-30 22:28 王清河 阅读(229) 评论(0) 推荐(0) 编辑
摘要:打印本机的交换分区大小 答案: free -m | sed -n '/Swap/p' | awk '{print $2}' 解析: free -m 查看系统内存使用情况 sed -n ‘/Swap/p’ 打印匹配Swap的行 awk '{print $2}' awk缺省的行分隔符是换行,缺省的列分隔 阅读全文
posted @ 2019-12-29 22:11 王清河 阅读(209) 评论(0) 推荐(0) 编辑
摘要:概念: 系统在响应某些状况而产生的事件,进程在接收到信号后采取相应的动作。 产生信号的方式: 1.键盘事件 Ctrl + c → 2) SIGINT(终止/中断) "INT" Interrupt Ctrl + z → 20) SIGTSTP(暂停/停止) "T" Terminal 终端。 ​ Ctr 阅读全文
posted @ 2019-12-29 21:53 王清河 阅读(222) 评论(0) 推荐(0) 编辑
摘要:题目: shell编程题(六) 打印当前sshd的端口和进程id 例如:处理结果: sshd Port&&pid: 22 5412 答案: netstat -nltp | grep ssh |awk -F: '{print $2}'| grep -v "^$"|awk '{print "ssh:"$ 阅读全文
posted @ 2019-12-26 18:08 王清河 阅读(208) 评论(0) 推荐(0) 编辑
摘要:1.字符串管理模块: 这个文件主要实现了能够自动扩展并灵活拼接的字符串类型,具体作用可以参考C++的string类型作用。 /*stringutils.h*/ #ifndef STRINGUTILS_H #define STRINGUTILS_H #include<stdlib.h> typedef 阅读全文
posted @ 2019-12-26 14:18 王清河 阅读(1410) 评论(0) 推荐(0) 编辑
摘要:前言: 在linux下编译程序运行时,因为涉及到动态库加载搜索问题,老是会出现加载失败的现象出现,现在整理一下相关知识,供下次遇到问题查看。 linux下程序寻找动态库路径: 1.编译生成时,指定的搜索路径。 在makefile中,一般使用”-Wl -rpath”来指明程序运行时到哪个路径去找库。当 阅读全文
posted @ 2019-12-23 17:21 王清河 阅读(2237) 评论(0) 推荐(1) 编辑
摘要:这种方法是采用B1017的那个求素数的算法,并且送一个比较大的数值当作上线(20000),也可以进一步压缩,但是这个数已经够用了,就没有再试了。 python方便是方便,但是真的慢 def isPrime(n, result): flag = [1] * (n+2) p = 2 while( p < 阅读全文
posted @ 2019-12-22 10:19 王清河 阅读(239) 评论(0) 推荐(0) 编辑
摘要:python语言运行这道题有一个点运行超时,需要对求素数的算法进一步的优化 def isPrime(n): if n <= 1: return False i = 2 while i * i <= n: if n % i == 0: return False i += 1 return True i 阅读全文
posted @ 2019-12-21 22:58 王清河 阅读(200) 评论(0) 推荐(0) 编辑
摘要:KMP算法是字符串匹配功能的一个优化。 所谓字符串匹配的问题意思是说,给一个字符串和一个匹配串,判断这个匹配串是否被这个字符串包含。或者说求匹配字符串在给的字符串中出现的位置。 在C语言中,strstr函数就是这个字符串功能的实现,既然你看到了这篇博客,我就默认你已经了解strstr函数。 举个例子 阅读全文
posted @ 2019-12-21 20:22 王清河 阅读(314) 评论(0) 推荐(0) 编辑
摘要:在windows环境下,编译运行小文件的C/C++环境 软件准备: vscode mingw64(官网下特别慢,可以在devc++安装软件里中找,放到全局变量中) 插件下载: Run Code C/C++ 运行配置: 安装好编译器和运行插件后,C/C++程序就可以运行了。 调试配置: 调试配置需要添 阅读全文
posted @ 2019-12-21 11:01 王清河 阅读(674) 评论(0) 推荐(0) 编辑
摘要:官方文件介绍 https://code.visualstudio.com/docs/languages/python 准备: vscode下载安装 python3版本下载(安装时可以选择添加环境变量,如果这步没选,在安装结束后自主添加) 运行: 下载Code Run插件 下载python插件 建立一 阅读全文
posted @ 2019-12-21 10:48 王清河 阅读(9229) 评论(0) 推荐(0) 编辑
摘要:python调用C库时参数太多,约定传json格式字符串,C解析 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct __Json_ { int byExposureModeSet; int byFocusMo 阅读全文
posted @ 2019-12-19 15:57 王清河 阅读(4107) 评论(0) 推荐(0) 编辑
摘要:vscode是一个轻量级的文本编辑器,但是它的拓展插件可以让他拓展成功能齐全的IDE,这其中就靠的是tasks.json和launch.json的配置 这两个json文件的相关变量是vscode特有的,但是和其他系统环境变量写法相似的变量,在网上找到相关说明如下:(可以在官网中查,但是没啥时间) 描 阅读全文
posted @ 2019-12-18 11:19 王清河 阅读(10339) 评论(0) 推荐(1) 编辑
摘要:介绍: 守护进程(daemon)是一类在后台运行的特殊进程,用于执行特定的系统任务。很多守护进程在系统引导的时候启动,并且一直运行直到系统关闭。另一些只在需要的时候才启动,完成任务后就自动结束。 守护进程是一个在后台运行并且不受任何终端控制的进程。Unix操作系统有很多典型的守护进程(其数目根据需要 阅读全文
posted @ 2019-12-17 17:37 王清河 阅读(229) 评论(0) 推荐(0) 编辑
摘要:函数介绍: strcasecmp用忽略大小写比较字符串.,通过strcasecmp函数可以指定每个字符串用于比较的字符数,strncasecmp用来比较参数s1和s2字符串前n个字符,比较时会自动忽略大小写的差异。 strcasecmp函数是二进制且对大小写不敏感。此函数只在Linux中提供,相当于 阅读全文
posted @ 2019-12-17 15:51 王清河 阅读(5384) 评论(0) 推荐(0) 编辑
摘要:函数描述: 检索字符串 str1 开头连续有几个字符都不含字符串 str2 中的字符。 函数声明: #include<string.h> size_t strcspn(const char* str1, const char *str2); 参数: str1:要被检索的字符串 str2:该字符串包含 阅读全文
posted @ 2019-12-17 15:36 王清河 阅读(341) 评论(0) 推荐(0) 编辑
摘要:DIR_INC = ./include DIR_SRC = ./src DIR_OBJ = ./obj DIR_BIN = ./bin LIBS += -Wl,-rpath=../lib/HCNetSDKCom -L./lib/ LIBS += -lAudioRender -lHCCore -lhc 阅读全文
posted @ 2019-12-13 18:27 王清河 阅读(189) 评论(0) 推荐(0) 编辑
摘要:今天在工作中遇到了一个需要处理xml格式的字符串,需求是修改某个固定的value值,并且还要把这个xml的key和value按照原本的格式在推送回去。 如果使用库,就显得太臃肿了,就想写个简单的demo实现这个功能: /* AnalysisXml.c */ #include<stdio.h> #in 阅读全文
posted @ 2019-12-12 17:49 王清河 阅读(651) 评论(0) 推荐(0) 编辑
摘要:输出本机创建20000个目录所用的时间 #! /bin/bash time ( for i in {1..2000} ; do mkdir /tmp/nnn$i done ) 运行记得删除 rm -rf /tmp/nnn* 阅读全文
posted @ 2019-12-10 22:43 王清河 阅读(149) 评论(0) 推荐(0) 编辑
摘要:可以称得上史上最简单的五子棋版本了。 可以使用curses库来改进页面和下棋方式。 并且对于输入的坐标没有进行鉴别,如果输入的坐标超过棋盘大小,就会段错误退出。 我改进了一点,但是还是没有完全避免这个问题。 /* *Gobang.c */ #include<stdio.h> #include<std 阅读全文
posted @ 2019-12-10 14:42 王清河 阅读(3394) 评论(1) 推荐(1) 编辑
摘要:/* * type_combined.c */ #include <time.h> #include <stdio.h> #include <stdlib.h> #include <string.h> #include "getputch.h" #define NO 3 /* 训练次数 */ #de 阅读全文
posted @ 2019-12-10 11:04 王清河 阅读(303) 评论(0) 推荐(0) 编辑
摘要:头文件getputch.h /* * getputch.c */ /* 用于getch/putch的通用头文件"getputch.h" */ #ifndef __GETPUTCH #define __GETPUTCH #if defined(_MSC_VER) || (__TURBOC__) || 阅读全文
posted @ 2019-12-09 15:00 王清河 阅读(403) 评论(0) 推荐(0) 编辑
摘要:给定两个由英文字母组成的字符串 String 和 Pattern,要求找到 Pattern 在 String 中第一次出现的位置,并将此位置后的 String 的子串输出。如果找不到,则输出“Not Found”。 本题旨在测试各种不同的匹配算法在各种数据情况下的表现。各组测试数据特点如下: 数据0 阅读全文
posted @ 2019-12-08 15:59 王清河 阅读(552) 评论(0) 推荐(0) 编辑
摘要:链表创建删除插入查找销毁操作 #include<stdio.h> #include<string.h> #include<stdlib.h> typedef struct Node { int data; struct Node *next; }SLIST; SLIST *SList_Create( 阅读全文
posted @ 2019-12-08 13:33 王清河 阅读(268) 评论(0) 推荐(0) 编辑
摘要:Courier 10 Pitch 阅读全文
posted @ 2019-12-07 14:33 王清河 阅读(612) 评论(0) 推荐(0) 编辑
摘要:#include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/times.h> #include<sys/types.h> #include<unistd.h> #include<ncurses.h> #define TBo 阅读全文
posted @ 2019-12-06 17:04 王清河 阅读(296) 评论(0) 推荐(0) 编辑
摘要:/* *drawWin.c */ #include<stdio.h> #include<stdlib.h> #include<string.h> #include<sys/times.h> #include<sys/types.h> #include<unistd.h> #include<ncurs 阅读全文
posted @ 2019-12-06 16:44 王清河 阅读(1400) 评论(0) 推荐(0) 编辑
摘要:Linux 的 touch 命令用来修改文件时间戳,或者新建一个不存在的文件,使用方式如下: touch [-acm][-r ref_file(参照文件)|-t time(时间值)] file(文件名) 本实验基于C语言实现Linux touch命令的 [-acm]选项。 注: touch file 阅读全文
posted @ 2019-12-04 14:28 王清河 阅读(3088) 评论(0) 推荐(0) 编辑
摘要:我们使用互斥锁解决了多个线程的竞态条件问题。 互斥锁的一个主要特点是,谁先拿到锁先就可以优先访问共享资源,因此多个线程访问共享资源的互斥性是得到了保证,但是在某些场合可能还希望确保线程间执行的顺序。 如我们有一个共享内存数据资源M,我们整个程序设计需求是要求线程A在M上做了处理之后,线程B才能做处理 阅读全文
posted @ 2019-12-04 13:59 王清河 阅读(284) 评论(0) 推荐(0) 编辑
摘要:竞态条件 同一个进程的线程共享进程内的绝大部分资源,当一段访问这些共享资源的代码块,有可能被多个线程执行时,那么这段代码块就称为临界区。 当有多个线程并发的在临界区执行时,程序的执行结果会出现不确定性,这种情况称之为竞态条件。 实例: #include<stdio.h> #include<pthre 阅读全文
posted @ 2019-12-03 14:11 王清河 阅读(571) 评论(0) 推荐(0) 编辑
摘要:一个线程可以对另一个线程提出取消申请,即线程被动终止的一种情况。向某个线程提出取消申请的接口: #include <pthread.h> int pthread_cancel(pthread_t thread); 如果一个线程因响应pthread_cancel而终止的,那么连接该线程时,将得到PTH 阅读全文
posted @ 2019-12-03 11:22 王清河 阅读(562) 评论(0) 推荐(0) 编辑
摘要:一次性初始化: 假设有以下需求,在我们的多线程程序中,我们几乎同时创建了N个线程(我们无法知道哪个线程会被先执行),我们期望这N个线程中谁先运行谁就要去负责去调用一个全局的初始化函数做相关的初始化动作,而该初始化函数仅能被调用一次。 线程的一次性初始化函数正是为了解决上述问题而存在的,函数接口如下 阅读全文
posted @ 2019-12-03 10:54 王清河 阅读(527) 评论(0) 推荐(0) 编辑
摘要:在线程的创建接口pthread_create的参数列表中有一个类型为pthread_attr_t的参数attr,该参数用于指定新建线程的相关属性。一个线程的主要属性包括:线程栈的地址及大小,线程的调度策略与优先级,还有线程是否处于分离状态等。 属性的初始化与销毁: #include <pthread 阅读全文
posted @ 2019-12-02 17:28 王清河 阅读(1019) 评论(0) 推荐(0) 编辑
摘要:线程创建 线程是操作系统能够进行调度运算的最小单位,它被包含在进程之中,是进程中的实际运作单位。一个线程指的是进程中一个单一顺序的控制流,一个进程中可以并发多个线程,每条线程可以并行执行不同任务。 一个线程的生命周期起源于它被创建的那一刻,创建线程的接口: #include <pthread.h> 阅读全文
posted @ 2019-12-02 14:45 王清河 阅读(224) 评论(0) 推荐(0) 编辑

点击右上角即可分享
微信分享提示