linux
DQZQ
这个作者很懒,什么都没留下…
展开
-
linux的若干问题解决
链接问题:Linux中绝大多数.so文件都存放在/lib、/usr/lib/(见Linux目录结构),对于64位和32位共存的系统,32位的动态库可能会放在/lib32、/usr/lib32,完整的动态库存放路径列表可通过/etc/ld.so.conf文件配置。(如果修改了配置,需要用/sbin/ldconfig 命令更新缓存) 从secureCRT中取windows命令: r原创 2013-07-24 22:21:06 · 218 阅读 · 0 评论 -
linux根据一个文件目录创建文件
代码如下:#include#include#include#include#include#includeusing namespace std;int main(){ int success=0;int i=0; char strPath[]="/usr/tmp/dz/hello";char tmpCh;char tmpStr[FILENAME_MAX]; do原创 2013-09-09 23:02:34 · 394 阅读 · 0 评论 -
linux 下的学习
一:sscanf的用法:如文件中:event system 7 50000 local0可以得到 while( fgets( line, sizeof( line ), fd ) ){sscanf( line,"%s%*[ \t]%s%*[ \t]%s%*[ \t]%s%*[ \t]%s%*[ \t\n]",name, val1, val2, val3, val4 )原创 2013-09-09 21:21:25 · 336 阅读 · 0 评论 -
linux try catch throw的实现
#include#include#includejmp_buf jmpbuffer;#define try int jmp;jmp=setjmp(jmpbuffer);if(0==jmp)#define throw(a) longjmp(jmpbuffer,a);#define catch(a) a=jmp;if(0!=jmp)void g(){ printf("in g()原创 2013-09-01 22:23:17 · 342 阅读 · 0 评论 -
linux 生产者和消费者的实现
互斥与同步 互斥和同步是两个紧密相关而又容易混淆的概念。 互斥:是指某一资源同时只允许一个访问者对其进行访问,具有唯一性和排它性。但互斥无法限制访问者对资源的访问顺序,即访问是无序的。同步:是指在互斥的基础上(大多数情况),通过其它机制实现访问者对资源的有序访问。在大多数情况下,同步已经实现了互斥,特别是所有写入资源的情况必定是互斥的。少数情况是指可以允许多个访原创 2013-09-07 19:36:56 · 370 阅读 · 0 评论 -
linux setjmp longjmp的使用与理解
当调用longjmp函数后,在main中的各类变量的值是否改变回原来的值呢?g++ -otest test.cppbeginsetjmp return code: 0globval= 0; autoval= 1; regival= 2; volaval= 3; statval= 4; in f()in g()setjmp return code: 2error code: 2原创 2013-09-01 22:06:44 · 318 阅读 · 0 评论 -
linux c++ 统计日志的线程安全类
class CLLog{public: static CLLog* GetInstance(); static CLStatus WriteLogMsg(const char *pstrMsg, long lErrorCode); CLStatus WriteLog(const char *pstrMsg, long lErrorCode);private: CLLog(con原创 2013-09-01 11:36:46 · 400 阅读 · 0 评论 -
linux c++ 临界区的封装
CLExecutiveFunctionProvider *myfunction = new CLMyFunction(); CLExecutive *pThread = new CLThread(myfunction); SPara *p = new SPara; p->Flag = 3; pThread->Run((void *)p); sleep(原创 2013-09-01 12:14:44 · 350 阅读 · 0 评论 -
linux c++ 线程 基于模板方面的封装
#include#include#include#include#include"CLStatus.h"#include"CLLog.h"using namespace std;class CMyFunction{public: CLStatus RunExecutiveFunction(void *pContext) { int i = (int)pCon原创 2013-09-01 10:28:51 · 283 阅读 · 0 评论 -
linux 条件变量 解决线程间相互等待的问题
如果主线程等待,子线程signal的话,一旦子线程先调用,主线程将一直等待。也就是子线程调用pthread_cond_signal后,主线程才调用pthread_cond_wait进入阻塞状态解决办法:struct SPara{ CLConditionVariable condition; CLMutex mutex; volatile int flag;};原创 2013-09-01 18:39:52 · 348 阅读 · 0 评论 -
linux 条件变量的封装
条件变量的处理比较复杂,需要有flag变量、固定的函数调用序列等等能否简化条件变量的使用封装的思路:Windows的事件机制让一个线程等待某一个事件的发生class CLEvent{public: /* 构造函数和析构函数出错时,会抛出字符串类型异常 */ CLEvent( ); virtual ~CLEvent();public: CLStatus S原创 2013-09-01 19:03:38 · 337 阅读 · 0 评论 -
linux 多线程的学习
pthread_exit的一个目标是,把一个指针传递给pthread_join函数pthread_join函数的思路是:通过参数的返回值,将该指针值返回给pthread_join的调用者#include#include#includeusing namespace std;void* thread(void* arg){ cout<<(long)arg<<endl; ret原创 2013-08-31 21:06:31 · 304 阅读 · 0 评论 -
linux fork两次以避免僵死进程
#include #include #include #include #include #include #include #include #include #includeint main(){ pid_t pid; if((pid=fork())<0){ perror("creat"); }else if(pid==0){原创 2013-08-31 12:43:05 · 333 阅读 · 0 评论 -
linux 几种命令的学习
一:怎样了解您在当前目录下还有多大空间? A. Use df B. Use du / C. Use du . D. Use df . 解析:df 用来获得整个系统的使用情况/dev/sda1 9804120 5425584 3880516 59% /udev 241832 4 241828 1% /dev原创 2013-09-06 14:55:13 · 324 阅读 · 0 评论 -
linux write O_APPEND 注意的地方
当以O_APPEND选项打开一个文件时,能否使用lseek指定文件偏移量?指定之后,从文件什么地方开始进行写?读操作又是如何?#include#include#includeusing namespace std;int main(){ int fd=open("a.c",O_RDWR|O_APPEND); char buf='m'; if(write(fd,&buf,1)原创 2013-08-31 16:00:01 · 624 阅读 · 0 评论 -
linux的几种技术-valgrind
valgrind的使用:int main(){ char* x=malloc(100); exit(0);}gcc -Wall hel.c -g -o hel使用valgrind --tool=memcheck --leak-check=yes --show-reachable=yes ./hel==4856== Memcheck, a memory error de原创 2013-08-15 16:46:25 · 199 阅读 · 0 评论 -
ubuntu安装卸载boost
安装:sudo apt-get install libboost-dev libboost-doc卸载:sudo apt-get --purge remove libboost-dev libboost-doc测试:#include #include using namespace std; using namespace boost; int fun(int原创 2013-08-06 14:30:05 · 428 阅读 · 0 评论 -
vimrc的设置
map :call SaveInputData()func! SaveInputData() exec "tabnew" exec 'normal "+gP' exec "w! /tmp/input_data"endfunc"colorscheme torte"colorscheme murphy"colo原创 2013-10-25 19:28:00 · 320 阅读 · 0 评论