a storage class can only be specified for objects and functions

extern修饰一个struct报错,错误原因如上,C++中存储类修饰符有auto、register、extern、static,这几种修饰符只能修饰对象或者函数,这里用extern来修饰struct是错误的。
g++生成动态链接库的命令
-shared表示是标准对象,-fPIC表示函数能够重定向。
g++ -o libThreadPool.so -shared -fPIC ThreadPool.cpp -l pthread
g++调用本地动态库编译命令
-L指定动态库搜索路径,如果系统默认路径找不到,就到-L指定路径搜索
g++ -o testpool testpool.cpp -l ThreadPool -L ./
g++的命令中 -g生成调试信息以后,查看core时就可以bt查看调用堆栈
查看core信息
gdb a.out
core core.xxxxx
bt

此时可以p查看各个变量的值来更精确定位错误

查看文件链接的动态库信息
ldd execfile
同步/异步
同步和异步往往和线程有关系,比如SendMsg,线程A->线程B,发送消息后需要等待其他线程或进程的响应。
如果SendMsg以后线程A等待线程B返回响应消息,线程才继续处理,这就是同步
如果SendMsg以后线程A就继续做自己的事情,而注册了一个回调或者响应线程来处理线程B的响应消息,这就是异步
同步往往是阻塞的
异步往往是非阻塞的
阻塞/非阻塞
阻塞read:线程将阻塞,直到有可读的数据。
非阻塞read:设置O_NOBLOCK以后,如果fd没有可读的数据,read将立即返回-1并设errno为EAGAIN。
在有可读数据时阻塞与非阻塞read是一样的。
阻塞write:data从user-mode空间move到kernel-mode空间,之后系统完成kernel-mode到物理缓冲的处理并返回,然后阻塞IO返回。
非阻塞write:data从user-mode空间move到kernel-mode空间,write返回。
linux信号
linux向指定进程发指定信号
kill -s signal_name/signal_no  pid
 signal_number   sig Value
 0               0
 1               SIGHUP
 2               SIGINT
 3               SIGQUIT
 6               SIGABRT
 9               SIGKILL
 14              SIGALRM
 15              SIGTERM

 64位下的long长度是64
 linux下查看内存的方式
 x/100x 0x46505650
undefined reference to
可能依赖库的顺序不对
gdb调试信号,避免gdb把信号接管
handle SIGINT nostop print pass 
signal SIGINT 
子进程如何知道父进程是否退出
1.getppid,如果等于1表示父进程已经退出
2.注册信号,父进程退出时给子进程发送信号
3.管道处理,父进程和子进程建立管道,定时收发消息,通过管道保持联络
4.父进程锁一个文件,子进程检查锁,如果不能得到锁,说明父进程还在
nohup方式启动进程   nohup processname &  
以nohup方式启动,起到守护进程的作用

解决gcc乱码   LANG=en_us

gdb多进程调试
方法1:调试多进程最土的办法:attach pid
方法2: set follow-fork-mode child + main断点
方法3: set follow-fork-mode child + catch exec

最近最好玩的笑话:朋友想做一个包子,结果做成了锅盔,感慨道:包子呀,你注定做不了自己。

还有我那思路超级发散的媳妇,大家讨论说多招几个人,招够4个人就可以搓麻将了,她瞬间回了一句,招够7个多好,可以召唤龙珠了!

我是一个无趣的家伙,可我的生活很好玩,贱贱的朋友、萌哒哒的老婆、还有摄影师+大厨的朋友、还有还有......

【LINUX】编程笔记的更多相关文章

  1. Linux 编程笔记(三)

    上一章节对文件的基本属性做了一个笔记,续上次笔记对Linux文件的属性和属性组做一笔记 我安装的是虚拟机操作系统的版本还KaliLinux但是系统启动速度拖延,所以刚开始还是配置Centos 1.Li ...

  2. Linux 编程笔记(四)

    一.用户和用户组管理 添加新的用户账户使用useradd 格式useradd   选项  用户名 1.创建一个用户tian 其中 -d -m参数用来为登陆,登录名产生一个主目录 /usr/tian(其 ...

  3. linux 编程笔记 2

    1.使用create建立文件: #include <stdio.h> #include <stdlib.h> #include <fcntl.h> #include ...

  4. linux 编程笔记1 crusher for linux

    1.反显示字符crusher #include <stdio.h> int main (int argc, char *argv[]) { printf("\033[7m mor ...

  5. storysnail的Linux串口编程笔记

    storysnail的Linux串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据Ge ...

  6. Linux网络编程笔记(修订版)

    我的网络编程笔记, 因为最近又要做Linux下的网络编程,故重新修订, 其中一些内容参考了文末的链接及文章 1.   基本概念 2.   基本接口 2.1.   打开一个socket 2.2.   将 ...

  7. 笔记整理--Linux编程

    linux c编程open() read() write()函数的使用方法及实例 | 奶牛博客 - Google Chrome (2013/8/31 17:56:10) 今天把文件IO操作的一些东东整 ...

  8. Linux内核笔记--深入理解文件描述符

    内核版本:linux-2.6.11 文件描述符(file descriptor)在Linux编程里随处可见,设备读写.网络通信.进程通信,fd可谓是关键中的关键. 深入理解可以增加我们使用它的信心. ...

  9. Linux 学习笔记

    Linux学习笔记 请切换web视图查看,表格比较大,方法:视图>>web板式视图 博客园不能粘贴图片吗 http://wenku.baidu.com/view/bda1c3067fd53 ...

  10. storysnail的Windows串口编程笔记

    storysnail的Windows串口编程笔记 作者 He YiJun – storysnail<at>gmail.com 团队 ls 版权 转载请保留本声明! 本文档包含的原创代码根据 ...

随机推荐

  1. UVA 11090 Going in Cycle!! 环平均权值(bellman-ford,spfa,二分)

    题意: 给定一个n个点m条边的带权有向图,求平均权值最小的回路的平均权值? 思路: 首先,图中得有环的存在才有解,其次再解决这个最小平均权值为多少.一般这种就是二分猜平均权值了,因为环在哪也难以找出来 ...

  2. 运维角度浅谈MySQL数据库优化(转)

    一个成熟的数据库架构并不是一开始设计就具备高可用.高伸缩等特性的,它是随着用户量的增加,基础架构才逐渐完善.这篇博文主要谈MySQL数据库发展周期中所面临的问题及优化方案,暂且抛开前端应用不说,大致分 ...

  3. POJ 1664 放苹果

    放苹果 Time Limit: 1000MS   Memory Limit: 10000K Total Submissions: 24985   Accepted: 15908 Description ...

  4. Mac下开发常用目录

    1:Snippets    Xcode 代码段的文件表示 ~/Library/Developer/Xcode/UserData/CodeSnippets/ 2: Services  可以添加workf ...

  5. win7/8下VirtualBox虚拟共享文件夹设置

    1. 安装增强功能包(VBoxGuestAdditions)   打开虚拟机,运行ubuntu,在菜单栏选择"设备->安装增强功能",根据提示即可安装成功(成功后也可 以实现 ...

  6. strcpy函数和strncpy函数的区别

    strcpy函数和strncpy函数的原型介绍在我的另一篇文章中介绍了,见strcpy,strncpy,strlen等函数原型 strcpy:字串复制 原型:char *strcpy(char *de ...

  7. Spring 定时任务的实现<转>

    本人暂时用到的实现定时任务的方式有2种 一.注解方式实现,简单方便 1:在applicationContext.xml中加入下面的配置, 这是spring的组件扫描,保证含有定时任务的类,能被spri ...

  8. 开通GitHub以及使用笔记

    把小游戏的代码和博客迁移到GitHub上,路径是:https://github.com/GAMTEQ,欢迎访问 以下是使用GITHUB的一些命令 504  cd code 506  mkdir Fai ...

  9. [NOI2001]反正切函数的应用

    Time Limit:1000ms Memory Limit:65536kB Description 反正切函数可展开成无穷级数,有如下公式 (其中0 <= x <= 1) 公式(1) 使 ...

  10. codeforce 702C Cellular Network 二分答案

    http://codeforces.com/contest/702 题意:n个村庄,m个机站,问机站最短半径覆盖完所有村庄 思路:直接二分答案 二分太弱,调了半天..... // #pragma co ...