Linux中getopt函数用法 2016年10月16日 10 阅读 最近做cache lab 用到了getopt函数, 用man 3 getopt查看了下用法, 做个总结.描述:getopt函数是用来解析命令行参数的, 以‘-’或‘--’开头的参数为选项元素,除去‘-’或‘--’的选项元素为选项字符。如果getopt函数被重复调用,则它将会依次返回每个选项元素中的选项字符。使用getopt函数需要包含以下头文件:#include...
C语言陷阱:浮点运算 2016年10月16日 10 阅读 在Stack overflow上看到这样一个问题。计算如下表达式的值:P=(1/2-3/4)*(5/6-7/8)*...*[n/(n-1) - (n+2)/(n+3)]。程序如下:#include<stdio.h>int main (){float s, p = 1.0;int i, n;printf("Put a number:");scanf("%d", &n);for(i = 1; i <= n; ++i){ p *= ((...
Go语言并行之美 -- 超越 “Hello World” 2016年10月16日 10 阅读 偶尔学习一种新的编程语言是件好事,但不能仅止步于 “Hello World"。时常学习一种新的编程语言对你有好处,即使这种语言不会流行起来或者已经过时。使用新的语言处理旧的问题会促使你重新思考你当前处理问题的视角、方法和习惯。我喜欢尝试新鲜的事物,特别是编程语言。但是,当你用新的语言实现了“你好,世界!”或者斐波那契序列之后,通常你会感到基本上再没什么可做的,没有任何新奇的地方。你可以试着实现埃拉托斯特尼筛法,借此探索一...
用 Qt4 Designer 配合程序设计 2016年10月16日 10 阅读 做个查找窗口界面。创建一个目录,名为 myfindcd /root/learn/qt4mkdir myfindcd myfind打开 qt4 designer 点击菜单 Applications -> Programming -> Qt4 Designer 在 New Form 窗口里选择 Widget,如下图所示拖放以下几个控件放入 Form 里,如下图所示:从上至下,从左至右依次放的是:Label, Line Edit, Horizonta...
Android 高仿QQ HD mini左右滑动菜单栏效果 2016年10月16日 10 阅读 Android 高仿QQ HD mini左右滑动菜单栏,动画逼真。首先来看看几张效果图:1.进入程序时,首先显示中间菜单,即QQHD mini的最近会话列表。2.向左滑动,或者点击左上角图标,可以展开左边菜单栏,即QQ HD mini的好友列表,有动画效果。3.向右滑动或者点击右上角图标,可以展开右边菜单,即QQ HD mini的设置之类的布局,这里我放了一个自定义view,作为例子。下面让我们来看看最重要的那个自定义view的源码:/** * 可左右切换...
C++ 命名管道 IPC 2016年10月16日 11 阅读 技术:IPC,RPC,Windows General主题:Named Pipe,Inter-process Communication概要:命名管道是一种进程间单工或双工的通信机制。它可以在管道服务器和一个或多个管道客户端间进行。客户端可以位于本机或互联网上的远程计算机。PIPE_ACCESS_INBOUND(呼入):Client (GENERIC_WRITE) ---> Server (GENERIC_READ)PIPE_ACCESS_OUTBOU...
Java运行Shell脚本 2016年10月16日 10 阅读 利用Runtime.execute方法,我们可以在Java程序中运行Linux的Shell脚本,或者执行其他程序。参考了互联网上的这篇文章,我重新整理了代码。现在通过CommandHelper.execute方法可以执行命令,该类实现代码如下:package javaapplication3;import java.io.BufferedReader;import java.io.IOException;import java.io.InputStream...
Java通过SSH2协议运行远程程序 2016年10月16日 10 阅读 我使用Ganymed库,下载最新版本的程序,解压后,在NetBeans下如下设置。 然后在我们的Java应用程序中,加入Ganymed-ssh2-build2库。 假定我在192.168.0.110的Ubuntu Server 9.04系统的/home/chenshu目录下放了一个文件夹test,test文件夹对应测试Java类的包名test,我们在该机器上运用javac ./test/Main.java编译后,在另一台机器上运行Java程序,该程序通...
Java运行系统命令 2016年10月16日 10 阅读 前面写过一个版本的Java代码用来调用linux shell脚本,原文如下:http://www.linuxidc.com/Linux/2013-05/83739.htm不过没有试过Windows下运行,试了一下,还是不错的,把代码做了一些调整,封装成对象,这样更方便多线程下调用,不用担心静态变量互相干扰的问题。先看一下怎么用: public static void main(String[] args) { try { Command ...
Android 数据库存取图片 2016年10月16日 10 阅读 Android 数据库中存取图片通常使用两种方式,一种是保存图片所在路径,二是将图片以二进制的形式存储(sqlite3支持BLOB数据类型)。对于两种方法的使用,好像第二种方法不如第一种方法更受程序员欢迎,他们认为,在很多数据库语言里,处理大字段都是不容易的,像图片这样的文件放在数据库里会有问题:对数据库的读写速度永远赶不上文件系统的处理速度,使数据库变得巨大;但也有很多人认为像图片这样的数据存放在数据库中也有好处:易于备份,且备份速度绝对比备份文件快,比...
Android 判断字符串是否为空的最优方法 2016年10月16日 10 阅读 在Android 的开发中经常会使用判断字符串是否为空,虽然现在智能手机的运行速度越来越高,但为了使应用更加的流畅,我们应该保证在编写程序时使用较好的方法来提高效率。一下为四种方法的运行时间的比较:public class TestEmptyString { String s= ""; long n= 10000000; private void function1() { long startTime = System.currentTimeM...
Android Toast 显示时间问题的探讨 2016年10月16日 10 阅读 我想,看到这篇文章的你对Toast并不陌生,可以这样说,Toast的作用就是提示用户。一般为了到达更好地用户体验效果,我们可以自定义Toast的显示效果,包括样式、显示时间等。这里我只对Toast的显示时间问题与大家分享一下我的经验。我们知道Toast的默认显示时间有两个,分别为Toast.LENGTH_SHORT和Toast.LENGTH_LONG,当然我们也可以根据需要自定义Toast显示时间的长短,这个问题不是本文的重点,在这里不做介绍。下面开始我们...
Android依赖注入:Google Guice on Android 2016年10月16日 10 阅读 RoboGuice 使用谷歌自己的Guice库,给Android带来了简单和易用的依赖注入。如果你使用过Spring或Guice的话,你可能已经知道这种编程方式是多么的便捷。RoboGuice 允许使用annotation 的方式来描述id于View之间的关系,其余的工作由roboGuice库来完成。比如:class AndroidWay extends Activity {TextView name;ImageView thumbnail;Locatio...
Android Dialog 全屏 2016年10月16日 11 阅读 Android中让Dialog全屏:一、在style中定义样式:<?xml version="1.0" encoding="utf-8"?><resources> <style name="Transparent"> <item name="android:windowBackground">@color/transparent_background</item> <item na...
IntelliJ IDEA 创建J2EE项目 2016年10月16日 10 阅读 IntelliJ IDEA 创建J2EE项目方式一1.File--NewProject--next,取个名字,意味着你的文件存放地。2.Next--Next--勾选Web Application--Finish。3.Edit Configurations--添加--tomcat--local--找到WEB容器所地4.OK,这样就构建成功了,可以开发你的项目。那么包怎么加载勒回到主界面,File--Project Structure(Ctrl+Shift+A...
Go 语言中实现优雅的停止程序 2016年10月16日 10 阅读 过早的部署这种行为非常粗略,尤其是在部署还要中断用户请求的情况下更是如此,因此,我们在Betable构建的Go服务要在不中断任何用户请求的情况下优雅的中止服务。其基本思想就是停止侦听(llistening),假定会有一个新的进程来接管这些侦听,让所有已经建立起来的连接在最终停止服务前继续处理进行中的请求。顺便说一句,我们采用了goagain,从而可以甚至在不停止侦听的情况下重启服务,但这个话题超出了本文的讨论范围。main.main做了四件事情:侦听、生成...
mini2440挂载文件系统 2016年10月16日 10 阅读 1、Nfs 挂载根文件系统1.1 mini2440选择在NOR下烧写u-boot.bin到NAND flash1.2 Mini2440选择NAND flash启动,进入u-boot命令行1.3使用print打印开发板系统信息,设置u-boot命令,设置printenvsetenv ipaddr 192.168.1.100 // 开发板IPsetenv serverip 192.168.1.101//Windows IPsetenv gatewayip 1...
使用Java实现在HDFS中创建文件夹 2016年10月16日 10 阅读 使用Java实现在HDFS中创建文件夹package com.njupt.Hadoop;import org.apache.hadoop.conf.Configuration;import org.apache.hadoop.fs.FileSystem;import org.apache.hadoop.fs.Path;public class HDFSMkdir {public static void main(String[] args) throws ...
用Linux函数printk打印内核信息的方法 2016年10月16日 10 阅读 Linux内核用函数printk打印调试信息,该函数的用法与C库打印函数printf格式类似,但在内核使用。用户可在内核代码中的某位置加入函数printk,直接把所关心的信息打打印到屏幕上或日志文件中。函数printk根据日志级别(loglevel)对调试信息进行分类。日志级别用宏定义,展开为一个字符串,在编译时由预处理器将它和消息文本拼接成一个字符串,因此函数printk中的日志级别和格式字符串间不能有逗号。下面两个 printk 的例子,一个是调试信息...
在C++ man pages中查询C++的函数 2016年10月16日 10 阅读 在Linux下查询命令或函数的使用,通常是这样:man printfman 3 printfman cat但是为了避免造成操作系统、C语言与C++的混淆,目前安装的C++ man pages与上面的查询命令有一些不同,主要是加了命名空间的限定,也就是说用这样的命令 : man cout , 是查询不到的。正确的方法应该是:man std::iostream ,之后再通过搜索/cout,找到cout的说明也就是说现在的查询命令应该是man namespace...