readline

编译bash实现history的syslog日志记录

本小妞迷上赌 提交于 2020-08-08 18:08:33
一、下载bash源码包 [root@repo other_x86_64]# http://vault.centos.org/6.9/os/Source/SPackages/bash-4.1.2-48.el6.src.rpm 二、安装源码包 [root@repo other_x86_64]# rpm -ivh bash-4.1.2-48.el6.src.rpm #警告可以忽略 1:bash warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not exist - using root warning: user mockbuild does not exist - using root warning: group mockbuild does not

C#中动态调用DLL动态链接库

感情迁移 提交于 2020-08-08 17:36:29
原文: C#中动态调用DLL动态链接库 其中要使用两个未公开的Win32 API函数来存取控制台窗口,这就需要使用动态调用的方法,动态调用中使用的Windows API函数主要有三个,即:Loadlibrary,GetProcAddress和Freelibrary。步骤如下: 1. Loadlibrary: 装载指定DLL动态库 2. GetProcAddress:获得函数的入口地址 3. Freelibrary: 从内存中卸载动态库 但是C#中是没有函数指针,无法直接使用GetProcAddress返回的入口地址。后来找到资料,其实.NET 2.0新增了Marshal.GetDelegateForFunctionPointer 方法可以满足这个要求,MSDN里的解释是:将非托管函数指针转换为委托。 后面的事就简单啦,我把它编成了一个类来方便调用。 using System; using System.Collections.Generic; using System.Text; using System.Runtime.InteropServices; namespace feiyun0112.cnblogs.com { public class DllInvoke { Win API #region Win API [DllImport( " kernel32.dll " )]

异常Exception(三)

馋奶兔 提交于 2020-08-07 09:46:50
上一篇: 异常Exception(二) 使用try...catch...捕获异常,如果能预料到某些异常可能发生,可以使用精确的异常例如“FileNotFoundException”、“DirectoryNotFoundException”、“IOException”等,最有使用一般异常“Exception”。 using System; using System.Collections; using System.IO; namespace ConsoleApp5 { class Program { static void Main( string [] args) { try { using (StreamReader sr = File.OpenText( " data.txt " )) { Console.WriteLine($ " The first line of this file is {sr.ReadLine()} " ); } } catch (FileNotFoundException e) { Console.WriteLine($ " The file was not found: '{e}' " ); } catch (DirectoryNotFoundException e) { Console.WriteLine($ " The directory

使用log4net将日志文件输出为csv格式

老子叫甜甜 提交于 2020-08-06 19:42:41
  我们在编写程序时,会在程序运行过程中记录一些日志。log4net作为一款经久耐用的日志组件,值得我们信赖。在中小型公司中,往往没有专业的日志服务器来处理应用程序产生的日志,而格式化不好的日志文件又为上线后日志的统计、分析、查找造成了困难。   Excel作为一款常用的办公软件,用来处理一些中小数量级的数据还是游刃有余的。如果log4net输出的日志能够直接导入Excel,那么查询和分析起来岂不是要快很多?   我们有很多方法可以实现这个功能,csv的优势是其文件格式比较简单,可以用任意的文本编辑器打开,而且解析起来比较方便。效果如下:   新建控制台程序,引用log4net类库这些步骤不必说,直接进入正题,我们需要增加4个类文件 CsvTextWriter 、 NewFieldConverter 、 EndRowConverter 和 CsvPatternLayout。 CsvTextWriter.cs 1 using System.IO; 2 using System.Text; 3 4 namespace CoderBusy.Log4Net.Layout 5 { 6 public class CsvTextWriter : TextWriter 7 { 8 private readonly TextWriter _textWriter; 9 10 public

c# 操作Redis的五种基本类型总结

江枫思渺然 提交于 2020-08-06 05:10:33
在我们的项目中,通常会把数据存储到关系型数据库中,比如Oracle,SQL Server,Mysql等,但是关系型数据库对于并发的支持并不是很强大,这样就会造成系统的性能不佳,而且存储的数据多为结构化数据,对于非结构数据(比如文本)和半结构化数据(比如JSon) 就显得不够灵活,而非关系型数据库则很好的弥补了这两点, 我们通常把读操作频繁的数据写入Redis中,以Key-value的方式存储来提高性能。 Redis支持5种数据类型:string(字符串),hash(哈希),list(列表),set(集合)及zset(sorted set:有序集合)。以下介绍了.net中操作redis五种数据类型的基本语法。 一、String数据类型的应用场景 1. 简介 string 是 redis 最基本的类型,你可以理解成与 Memcached 一模一样的类型,一个 key 对应一个 value。 string 类型是二进制安全的。意思是 redis 的 string 可以包含任何数据。比如jpg图片或者序列化的对象。 string 类型是 Redis 最基本的数据类型,string 类型的值最大能存储 512MB。 2.使用场景 存储简单的键值对,比如我们需要统计某个网站的点击量,关注量、粉丝量等 3. C#使用操作举例 现在需要保存一个Webservice接口的参数,让其实现可配置

Python新手学习标准库模块命名

a 夏天 提交于 2020-08-06 01:20:29
与 Python 标准库模块命名冲突 Python的一个优秀的地方在于它提供了丰富的库模块。但是这样的结果是,如果你不下意识的避免,很容易你会遇到你自己的模块的名字与某个随Python附带的标准库的名字冲突的情况(比如,你的代码中可能有一个叫做email.py的模块,它就会与标准库中同名的模块冲突)。 这会导致一些很粗糙的问题,例如当你想加载某个库,这个库需要加载Python标准库里的某个模块,结果呢,因为你有一个与标准库里的模块同名的模块,这个包错误的将你的模块加载了进去,而不是加载Python标准库里的那个模块。这样一来就会有麻烦了。 所以在给模块起名字的时候要小心了,得避免与Python标准库中的模块重名。相比起你提交一个“Python改进建议(Python Enhancement Proposal (PEP))”去向上要求改一个标准库里包的名字,并得到批准来说,你把自己的那个模块重新改个名字要简单得多。 知识点扩充: python标准库简介 文本 string:通用字符串操作 re:正则表达式操作 difflib:差异计算工具 textwrap:文本填充 unicodedata:Unicode字符数据库 stringprep:互联网字符串准备工具 readline:GNU按行读取接口 rlcompleter:GNU按行读取的实现函数 二进制数据 struct

Looking for suitable tools for querying and calculating large files

孤者浪人 提交于 2020-08-05 12:29:15
In data analysis, it is inevitable to encounter large data files that cannot be loaded in memory. How to query and calculate large files? This paper analyzes and compares the advantages and disadvantages of several common methods, esProc SPL is the most suitable script for data analysts to process large files.Go to Looking for suitable tools for querying and calculating large files for more infomation. What is a large file? A large file is a file that is too large to be read in at one time because of insufficient computer memory. In this case, direct use of desktop data tools (such as Excel)

java http大文件断点续传上传功能

 ̄綄美尐妖づ 提交于 2020-08-05 08:21:19
第一点:Java代码实现文件上传 FormFile file = manform.getFile(); String newfileName = null; String newpathname = null; String fileAddre = "/numUp"; try { InputStream stream = file.getInputStream();// 把文件读入 String filePath = request.getRealPath(fileAddre);//取系统当前路径 File file1 = new File(filePath);//添加了自动创建目录的功能 ((File)file1).mkdir(); newfileName = System.currentTimeMillis() + file.getFileName().substring( file.getFileName().lastIndexOf('.')); ByteArrayOutputStream baos = new ByteArrayOutputStream(); OutputStream bos = new FileOutputStream(filePath + "/" + newfileName); newpathname = filePath + "/" +

文件的高级处理

折月煮酒 提交于 2020-08-05 02:58:31
一、文件的打开模式分类两大类 1、控制文件读写操作的模式 1.1 r:只读(不指定模式下默认的模式):在文件不存在时则报错,文件存在时文件指针跳到文件开头 f=open('m.txt',mode='rt',encoding='utf-8') # res = f.read() print(f.readable())#True print(f.writable())#False f.close() 1.2 w:只写:在文件不存在时则创建空文件,文件存在时则清空,文件指针跳到文件开头 f=open('b.txt',mode='wt',encoding='utf-8') f.write("你好啊哈哈哈\n") f.write("hello1\n") f.write("hello2\n") f.close() 1.3 a:只追加写:在文件不存在时则创建空文件,文件存在时也不会清空,文件指针跳到文件末尾 f=open('c.txt',mode='at',encoding='utf-8') f.write("jason:777\n")#会换行 f.write("jjj:666\n") f.close() 总结:w与a的异同 相同点:在打开了文件不关闭的情况下,连续地写入,新的内容永远跟在老内容之后 不同点:重新打开文件,w会清空老的内容,而a模式会保留老的内容并且指针跳到文件末尾 示范1

java.io.IOException: Stream closed 的问题

元气小坏坏 提交于 2020-08-04 22:42:31
public static String getBodyString(ServletRequest request) { StringBuilder sb = new StringBuilder(); InputStream inputStream = null ; BufferedReader reader = null ; InputStreamReader isr = null ; try { inputStream = request.getInputStream(); isr = new InputStreamReader(inputStream, Charset.forName("UTF-8" )); // reader = new BufferedReader(new InputStreamReader(inputStream, Charset.forName("UTF-8"))); reader = new BufferedReader(isr); String line = "" ; while ((line = reader.readLine()) != null ) { sb.append(line); } } catch (IOException e) { e.printStackTrace(); } finally { if (reader != null