readline

Apache common exec执行外部命令

故事扮演 提交于 2020-08-04 12:07:30
工作中需要用java调用外部命令(shell脚本,启动服务等),之前使用Runtime.getRuntime().exec调用外部程序,Runtime.getRuntime().exec是java原生态的命令,而Apache commons-exec封装一些常用的方法用来执行外部命令。例如我们想得到当前windows目录下的文件信息,在cmd命令行下的命令是dir。具体以代码示例展示2个方法实现。 第一种Runtime.getRuntime().exec String pl_cmd = "cmd.exe /c dir" ; Process p_pl = Runtime.getRuntime().exec(pl_cmd); BufferedReader br_pl = new BufferedReader( new InputStreamReader( p_pl.getInputStream())); String stdout = br_pl.readLine(); while (stdout != null ) { System.out.println(stdout); stdout = br_pl.readLine(); } 第二种Apache commons-exec ByteArrayOutputStream stdout = new

追了多年的开发框架,你还认识指针吗?

谁说我不能喝 提交于 2020-07-29 06:00:53
一:背景 1. 讲故事 高级语言玩多了,可能很多人对指针或者汇编都淡忘了,本篇就和大家聊一聊指针,虽然C#中是不提倡使用的,但你能说指针在C#中不重要吗?你要知道FCL内库中大量的使用指针,如 String,Encoding,FileStream 等等数不胜数,如例代码: private unsafe static bool EqualsHelper(string strA, string strB) { fixed (char* ptr = &strA.m_firstChar) { fixed (char* ptr3 = &strB.m_firstChar) { char* ptr2 = ptr; char* ptr4 = ptr3; while (num >= 12) {...} while (num > 0 && *(int*)ptr2 == *(int*)ptr4) {...} } } } public unsafe Mutex(bool initiallyOwned, string name, out bool createdNew, MutexSecurity mutexSecurity) { byte* ptr = stackalloc byte[(int)checked(unchecked((ulong)(uint

python 3.7 crash after install readline

為{幸葍}努か 提交于 2020-07-29 04:32:43
pip install readline 安装了readline模块之后,python控制台崩溃: 执行结果,如下: >>> 1+1 *** Error in `python': free(): invalid pointer: 0x00007f13bf7a7af0 *** ======= Backtrace: ========= /usr/lib64/libc.so.6(+0x81679)[0x7f13be21a679] /usr/local/lib/libpython3.7m.so.1.0(PyOS_Readline+0x165)[0x7f13bf12ba3a] /usr/local/lib/libpython3.7m.so.1.0(+0xab14f)[0x7f13bf16e14f] /usr/local/lib/libpython3.7m.so.1.0(PyTokenizer_Get+0x220)[0x7f13bf16f2a0] /usr/local/lib/libpython3.7m.so.1.0(+0xaa413)[0x7f13bf16d413] /usr/local/lib/libpython3.7m.so.1.0(PyParser_ASTFromFileObject+0x74)[0x7f13bf14fbe3] /usr/local/lib/libpython3.7m

IO积累01

家住魔仙堡 提交于 2020-07-29 00:46:47
mysql更新数据需要redo log,然后把数据保存到内存,有系统调用flus保存到磁盘中,是因为系统IO的原因,系统会把数据放到pagecacache中,如果对数据修改会标记为脏,这个标记是对所有的pagecache的,不是单指一个,然后有系统统一的flus到磁盘中;这就是为什么数据库修改数据保存到redo log中有延迟不是直接写入到磁盘中的原因。 说的不准确,知道大概过程 Linux有一个虚拟文件目录,都会挂载到相应的地方,比如dev3这块磁盘挂载到book虚拟目录上,进入book目录,其实就是进入到dev3中,所以就可以扩容,比如要存10T文件存入某个目录,可以把一个磁盘挂载到这个目录上,就可以保存了。 Linux虚拟文件系统,可以创建一个xxx.img文件,然后挂载到虚拟目录上,然后把可执行程序保存到虚拟目录中,实际操作的就是被挂载的xxx.img这块控件,可执行程序的根目录就是xxx.img,然后卸载xxx.img,把xxx.img挂载到其他虚拟目录也一样可以执行里面的程序,相当于一个容器,docket使用类似的原理; 磁盘IO pagecache作用 :内存中运行着各种应用,包括操作系统(kernel),但是应用不是一次性加载到内存中的,内存是分页存储的,每页大小4K,应用从磁盘加载到内存都是一页一页加载的,每个应用都有一个页表,里面记录页的线性地址

异常Exception(二)

北城以北 提交于 2020-07-28 20:14:09
学习网址: https://docs.microsoft.com/zh-cn/dotnet/standard/exceptions/exception-class-and-properties 了解Exception的常见属性。 Data :Exception的 键/值对 数据。 using System; using System.Collections; namespace ConsoleApp5 { class Program { static void Main( string [] args) { try { NestedRoutine1( true ); } catch (Exception e) { // 打印Data if (e.Data.Count > 0 ) { foreach (DictionaryEntry de in e.Data) Console.WriteLine( " Key: {0,-20} Value: {1} " , " ' " + de.Key.ToString() + " ' " , de.Value); } } Console.ReadLine(); } public static void NestedRoutine1( bool displayDetails) { try { NestedRoutine2(displayDetails

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

耗尽温柔 提交于 2020-07-28 19:45:26
在我们的项目中,通常会把数据存储到关系型数据库中,比如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接口的参数,让其实现可配置

还不明白可空类型原理? 我可要挖到底了

对着背影说爱祢 提交于 2020-07-28 18:57:49
一:背景 1. 讲故事 下决心做好自媒体到现在有一个月了,关注我的兄弟应该知道我产出了不少文章,号里的粉丝也多起来了,我也尽最大努力做到有问必回,现在是基础的、高深的问题都接踵而来,可我也只是一只小菜鸟,想飞也飞不动了(┬_┬),昨天号里有位朋友被面试官问到可空类型的原理,回答的不好,面试官也是,面就面呗,又给不了多少银子,还动不动就原理,哪有那么多原理,搞得双方都尴尬😄😄😄。 二:给我锄头我要挖到底 这种问题要怎么挖呢? 我在之前的文章也聊过,C#代码到机器码中间有两个编译过程,一个是csc编译后的IL代码,一个是jit编译后的native代码,所以搞懂IL代码和native代码就是我们要深究的方向,我还是把那篇文章的图拿过来。 为了方便演示,我就定义一个 int? 类型,接收非null和null两种情况。 static void Main(string[] args) { int? num1 = 10; int? num2 = null; Console.WriteLine("执行结束啦!"); Console.ReadLine(); } 1. 挖IL代码 挖IL代码简单,用ILSPY小工具就可以了,编译后生成的IL代码如下: .method private hidebysig static void Main ( string[] args ) cil managed { /

CentOS下为python命令行添加Tab键自动补全功能

白昼怎懂夜的黑 提交于 2020-07-28 13:57:59
难道python命令就真的没办法使用Tab键的自动补全功能么? 当然不是了,我们依然可以使用。只不过需要自己动手配置一下。    操作系统环境:CentOS release 6.4 x86_32 软件版本:Python 2.6.6 下面我们具体了解配置方法: 1、编写一个Tab键自动补全功能的脚本。 新手会说不会写怎么办? 搜索引擎可以帮助你,关键字(python tab键 自动补全) 1、编写一个Tab键自动补全功能的脚本。 新手会说不会写怎么办? 搜索引擎可以帮助你,关键字(python tab键 自动补全) vim startup.py #!/usr/bin/python # python startup file import sys import readline import rlcompleter import atexit import os # tab completion readline.parse_and_bind('tab: complete') # history file histfile = os.path.join(os.environ['HOME'], '.pythonhistory') try: readline.read_history_file(histfile) except IOError: pass atexit.register

麒麟Kylin系统适配gStore图数据库系统

大憨熊 提交于 2020-07-28 08:26:11
麒麟Kylin系统适配gStore图数据库系统 作者: 梁剑明 日期: 2020年07月17日 适配系统版本 :Kylin 4.0 内核版本 :aarch64 gStore版本 :V0.8 1.环境要求 适配gStore图数据库系统V0.8版本,环境需求如下: 项目 需求 操作系统 Linux, 例如CentOS, Ubuntu、Kylin等 架构 x86_64 磁盘容量 根据数据集的大小 内存大小 根据数据集的大小 glibc 必须安装 version >= 2.14 gcc 必须安装 version >= 4.8 g++ 必须安装 version >= 4.8 make 必须安装 boost 必须安装 version >= 1.54 readline 必须安装 readline-devel 必须安装 libcurl-devel 必须安装 openjdk 如果使用Java api,则需要 openjdk-devel 如果使用Java api,则需要 requests 如果使用Python http api,则需要 node 如果使用Nodejs http api则需要 version >=10.9.0 curl-devel 如果使用php http api,则需要 pthreads 如果使用php http api,则需要 realpath 如果使用gconsole,则需要

c# 通过HttpListener创建HTTP服务

核能气质少年 提交于 2020-07-28 04:07:32
  在c#中可以利用HttpListener来自定义创建HTTP服务,通过http协议进行服务端与多个客户端之间的信息传递,并且可以做成windows系统服务,而不用寄宿在IIS上。以下为一个demo,分为两部分,一部分为服务端,另一部分为客户端。   服务端:   class Program { static HttpListener httpobj; static void Main( string [] args) { // 提供一个简单的、可通过编程方式控制的 HTTP 协议侦听器。此类不能被继承。 httpobj = new HttpListener(); // 定义url及端口号,通常设置为配置文件 httpobj.Prefixes.Add( " http://+:8080/ " ); // 启动监听器 httpobj.Start(); // 异步监听客户端请求,当客户端的网络请求到来时会自动执行Result委托 // 该委托没有返回值,有一个IAsyncResult接口的参数,可通过该参数获取context对象 httpobj.BeginGetContext(Result, null ); Console.WriteLine($ " 服务端初始化完毕,正在等待客户端请求,时间:{DateTime.Now.ToString()}\r\n " ); Console