先来看该函数的声明: #include<unistd.h> char *getcwd(char *buf,size_t size); 介绍: 参数说明:getcwd()会将当前工作目录的绝对路径复制到参数buffer所指的内存空间中,参数size为buf的空间大小。 普通的用法会是这样: #define MAX_SIZE 255 char path(MAX_SIZE); getcwd(path,sizeof(path)); puts(path); 这样会将工作目录的绝对路径复制到buf所指向的空间中,但如果路径长度大于size,则会返回NULL,错误代码为ERANGE.所以我们在定义path的时候得定义的足够大,但这样又会使得内存浪费,linux的文件名长度限制为255个英文字符,理论上绝对路径的大小应该可以足够大,故而这样使用总有返回NULL的时候,所以getcwd()个我们提供了下面的一种用法: 可以采取令 buf 为 NULL并使 size 为零(百度百科里介绍可以使用负值但我测试的时候是段错误)来使 getcwd 调用 继续阅读 >>


李余通 16/07/23 09:43:41
关于 I/O multiplexing: —————-这里简单介绍一下,详细请参考UNP/ linux/UNIX系统编程手册下册 其实“I/O多路复用”这个坑爹翻译可能是这个概念在中文里面如此难理解的原因。所谓的I/O多路复用在英文中其实叫 I/O multiplexing,基本是这个意思: I/O multiplexing 这里面的 multiplexing 指的其实是在单个线程通过记录跟踪每一个Sock(I/O流)的状态来同时管理多个I/O流. 发明它的原因,是尽量多的提高服务器的吞吐能力。 epoll和read 都是阻塞的 read 和 epoll等阻塞的内容不一样,前者阻塞在整个IO调用上,后者阻塞在等待IO事件通知(多路复用就是多个文件句柄的多个状态变更通知) select poll epoll不管是单路还是多路,都需要有个线程在那阻塞等事件通知,通知有数据了,就调用你的回调函数; 对用户程序来说,就是一个模拟的AIO。 就一个单刀多置开关,哪搞事情,就连哪。 第一套:select: 继续阅读 >>


杜仑 16/07/23 09:29:00
在大家要在命令行模式下执行一个程序的时候,就有可能遇到这样一个错误: 错误: 找不到或无法加载主类 TestPackage 但是往往程序的编写是正常的,并且在IDE中执行的结果是正常的,首先贴上一个测试的全部源码: package test_package; /** * Created by zhuxinquan on 16-7-23. */ public class TestPackage { public static void main(String[] args) { System.out.println("测试成功"); } } 在IDE中的执行结果: 显示是正常执行的,然而在终端编译然后执行的结果就成了这样: 发生了错误:找不到或无法加载主类 其实原因就在于代码的最开始的行: package test_package; 此处使用了package,因此在编译好的class文件的使用时默认是需要通过”包名.主类名”来进行运行的,并且包文件夹必须存在,执行如下: 如上结果,首 继续阅读 >>


朱新全 16/07/23 09:09:00
        我们在编写程序的过程中,对于一些特殊的好=功能(如访问操作系统底层的硬件设备等)java程序无法实现,必须借助C语言来完成,此时就需要用c语言来为Javat提供实现,而它的实现步骤如下: 1.java程序中声明native()方法,类似于abstract方法,只有方法签名,没有实现,编译该Java程序,生成一个.class文件 2.用javah编译第一步生成.的class文件,生成一个.h文件 3.写一个.cpp文件实现native方法,其中需要包含第2步产生的.h文件(.h文件中又包含了JDK带的jni.h文件)。 4.将第3步的.cpp文件编译成动态链接库文件 5.在java中用System类的loadLibrary()方法或Runtime类的loadLibrary()方法加载第4步产生的动态l链接库文件,java程序中就可以调用这个native()方法。         继续阅读 >>


胡嘉辉 16/07/23 08:42:04
将两张图片放入图层,将其中一个图片x的比例设置为0,即隐藏起来。 分别给两个图片绑定点击监听事件,事件触发后执行缩放动作。将自身x比例设置为0,完成后将另一张图片x比例设置为1。 详见代码注释。 bool HelloWorld::init() { ////////////////////////////// // 1. super init first if ( !Layer::init() ) { return false; } auto visibleSize = Director::getInstance()->getVisibleSize(); Vec2 origin = Director::getInstance()->getVisibleOrigin(); //使用两张图片分别创建精灵 auto logo1 = Sprite::create("up.jpg"); auto logo2 = Sprite::crea 继续阅读 >>


师毅 16/07/23 03:04:43
并查集模板 #include<iostream> using namespace std; int pre[1050]; bool t[1050]; //t 用于标记独立块的根结点 int Find(int x) { int r=x; while(r!=pre[r]) r=pre[r]; int i=x,j; while(pre[i]!=r) { j=pre[i]; pre[i]=r; i=j; } return r; } void mix(int x,int y) { int fx=Find(x),fy=Find(y); if(fx!=fy) { pre[fy]=fx; } } int main() { int N,M, 继续阅读 >>


余海 16/07/22 23:54:23
Python之父Guido推荐命名规范包括如下几点: 1.模块名和包名采用小写字母并且以下划线分隔单词的形式; 如:regex_syntax,py_compile,_winreg 2.类名或异常名采用每个单词首字母大写的方式; 如:BaseServer,ForkingMixIn,KeyboardInterrupt 3.全局或者类常量,全部使用大写字母,并且以下划线分隔单词; 如:MAX_LOAD 4.其余变量命名包括方法名,函数名,普通变量名则是采用全部小写字母,并且以下划线分隔单词的形式命名。 如:my_thread 5.以上的内容如果是内部的,则使用下划线开头命名。 如:__init__,__new__ 作者:IT_DREAM_ER 发表于2016/7/22 21:03:10 原文链接 阅读:22 评论:0 查看评论 继续阅读 >>


周攀 16/07/22 21:03:10
近日在学习cocos2dx引擎的使用时,阅读了某些常用的类的源码。在此进行总结。 1.概述 版本:cocos2d-x-3.12 语言:C++ 在cocos2dx-3.x之前,存在着一些原生类型的封装类,如 CCBool, CCFloat, CCDouble, CCinteger等,来完成对原生数据类型的封装,但在3.0版本出现之后,这些都被一个名叫Value的类替代了。 cocos2d::Value是一个模板容器类,完成了对很多数据类型的封装。如原生类型int, float, char, char*, bool,以及string,map,vector等stl模板类。 Value极大的方便了cocos2dx工程里各种数据类型之间的转换。我们可以很同意的将不同数据类型转换为Value,反之亦然。 2.源码 #include <CCValue.h> 文件位置cocos2d-x-XXX/cocos/base/CCValue.h 2.1 成员变量 class CC_DLL Value { public: 继续阅读 >>


师毅 16/07/22 20:19:51
今天看到了一个关于使用python向execl中写入数据的小demo 作者:wrx1721267632 发表于 2016/07/22 17:45:33 原文链接 https://blog.csdn.net/wrx1721267632/article/details/51997128 阅读:39561 评论:5 查看评论 继续阅读 >>


王瑞欣 16/07/22 17:45:33
库是一种软件组件技术,库里面封装了数据和函数。 Linux库文件通常存放在/usr/lib或/lib目录下。 Linux静态库文件名组成: 前缀lib、库名和后缀.a组成(‘lib*.a’)。 静态库的代码在编译时就拷贝的应用程序中,这样的优点是节省编译时间,当要使用时,连接器会找出程序所需的函数,然后将它们拷贝到执行文件,由于这种拷贝是完整的,所以一旦连接成功,静态程序库也就不再需要了。 静态库是obj文件的一个集合,通常静态库以“.a”为后缀,它的优点是可以在不用重新编译程序库代码的情况下,进行程序的重新链接,这种方法节省了编译过程的时间(在编译大型程序的时候,需要花费很长的时间)。但是由于现在系统的强大,编译的时间已经不是问题。静态库的另一个优势是开发者可以提供库文件给使用的人员,不用开放源代码,这是库函数提供者经常采用的手段。当然这也是程序模块化开发的一种手段,使每个软件开发人员的精力集中在自己的部分。在理论上,静态库的执行速度比共享库和动态库要快(1%~5%)。 //filename:fun.c #include <stdio. 继续阅读 >>


何攀 16/07/22 17:38:49