linux
文章平均质量分 82
fengasdfgh
这个作者很懒,什么都没留下…
展开
-
Linux学习历程,与文件有关的时间属性
今天在学习linux指令的时候,发现在输入[admin@localhost cmd]$ stat test4.c 时会显示几行信息: File: `test4.c’ Size: 0 Blocks: 0 IO Block: 4096 regular empty file Device: 802h/2050d Inode: 274866原创 2016-12-26 17:12:44 · 353 阅读 · 0 评论 -
setsockopt解决套接字绑定失败
在编程的时候遇到的问题,在网上找到了原因,这这里记录一下,方便以后查阅。bind API 函数来绑定一个地址(一个接口和一个端口)到一个套接字端点。可以在服务器设置中使用这个函数,以便限制可能有连接到来的接口。也可以在客户端设置中使用 这个函数,以便限制应当供出去的连接所使用的接口。bind 最常见的用法是关联端口号和服务器,并使用通配符地址(INADDR_ANY),它允许任何接口为到来的连接所使用转载 2017-04-10 03:59:47 · 7520 阅读 · 0 评论 -
关于crosses initialization of “XXX的问题
这个问题是由于goto引起的;goto是已经名为不提倡的语句,但是有时它还是很有用的。 代码: 11 void func() 12 { 13 A a1; 14 cout << “hello,world!” << endl; 15 goto end; 16 A a2; 17 end: 18转载 2017-04-09 03:56:38 · 3852 阅读 · 0 评论 -
epoll函数及原理
epoll是Linux内核为处理大批量文件描述符而作了改进的epoll,是Linux下多路复用IO接口select/poll的增强版本,它能显著提高程序在大量并发连接中只有少量活跃的情况下的系统CPU利用率。另一点原因就是获取事件的时候,它无须遍历整个被侦听的描述符集,只要遍历那些被内核IO事件异步唤醒而加入Ready队列的描述符集合就行了。epoll除了提供select/poll那种IO事件的水平原创 2017-03-22 23:20:49 · 1907 阅读 · 0 评论 -
poll函数详解及原理
poll函数实现和select极为相似,但是它们的接口并不相同:int poll(struct pollfd fdarray[], nfds_t nfds, int timeout); int select(int maxfdp1, fd_set restrict readfds, fd_set *restrict expectfds, struct timeval restrict tvptr原创 2017-03-22 15:34:07 · 14626 阅读 · 2 评论 -
Select函数详解及原理
select函数原型:int select(int maxfdp1, fd_set *readset, fd_set *writeset, fd_set *exceptset,struct timeval *timeout);select函数的参数将告诉内核:(1) 我们所关心的描述符。(2) 对于每个描述符我们所关心的条件(是否读一个给定的描述符?是否想写一个给定的描述符?是否关心一个描述符的异原创 2017-03-22 15:12:17 · 2947 阅读 · 0 评论 -
Linux下用gdb调试多进程与多线程程序
1,调试多进程或多线程程序我们可以用printf语句打印消息,比如打印一些用的变量. 这种方法的优点是不用借助其他工具就可以对程序的运行进行观察,缺点是插入语句的位置、粒度等都需要调试者自己去权衡,如果插入过多的打印语句,则频繁的IO操作会使程序运行变慢,线程行为改变,有些bug甚至不会再出现。 2 , 使用我们的gdb工具。 在这里我们先列出gdb的一些基本操作:原创 2017-02-26 16:08:03 · 659 阅读 · 0 评论 -
Xshell连接不上虚拟机的问题和解决办法
·第一次用xshell,一直连不上linux,搞了好久,也查了很多办法,但是最后也终于解决了,在这里我分享一下自己的解决办法,再列举网上的办法,希望可以帮助其他人。 1,你的linux ip地址没有配置。 在你的linux下输入ifconfig -a,如果 你的inet addr为fexxxxxxx之类的,说明ip地址没有配置,你需要自己配置,配置的方法网上很多,在这里列举一种:原创 2017-03-03 11:09:03 · 186255 阅读 · 26 评论 -
简单常用的信号集操作函数
在这里我们先列出这些信号集操作函数,它们是: int sigemptyset(sigset_t *set); int sigfillset(sigset_t *set); int sigaddset(sigset_t *set, int signo); int sigdelset(sigset_t *set, int signo); int sigismember(const sigset原创 2017-02-24 12:51:18 · 518 阅读 · 0 评论 -
线程安全函数与可重入函数
一 什么是线程安全函数 • 概念: 线程安全的概念比较直观。一般说来,一个函数被称为线程安全的,当且仅当被多个并发线程反复调用时,它会一直产生正确的结果。 • 确保线程安全: 要确保函数线程安全,主要需要考虑的是线程之间的共享变量。属于同一进程的不同线程会共享进程内存空间中的全局区和堆,而私有的线程空间则主要包括栈和寄存器。因此,对于同一进程的不同线程来说,每个线程的局部变量都是私有转载 2017-02-24 11:24:30 · 329 阅读 · 0 评论 -
gcc编译动态库与静态库
我们知道库有静态库和动态库2种。这是因为链接时间不同而造成的。如下为它们的差别: 静态库是在链接阶段被链接的,链接静态库就像是我们所用的复制粘贴,它操作的对象是目标代码,源码不会发生改变由于静态库被链接后库就直接嵌入可执行文件中了,所以生成的可执行文件就不受库的影响了,即使在别的电脑上运行,程序依然可以成功运行。有别于静态库,动态库的链接是在程序执行的时候被链接的。所以,即使程序编译完,库仍须保留原创 2017-02-18 05:40:23 · 736 阅读 · 0 评论 -
Linux:浅谈信号量
1.信号量的概念。 信号量的本质是一种数据操作锁,它本⾝身不具有数据交换的功能,而是通过控制其他的通信资源(文件,外部设备)来实现进程间通信,它本⾝身只是一种外部资源的标识。信号量在此过程中负责数据操作的互斥、同步等功能。 当请求一个使用信号量来表示的资源时,进程需要先读取信号量的值来判断资源是否可用。大于0,资源可以请求,等于0,无资源可用,进程会进⼊入睡眠状态直至资源可用。 当进程不再使用原创 2017-02-17 06:18:43 · 448 阅读 · 0 评论 -
浅谈消息队列
1,首先,我们应该说清楚什么是消息队列?(以下为网络资料) 消息队列提供了一种从一个进程向另一个进程发送一个数据块的⽅方法。 每个数据块都被认 为是有一个类型,接收者进程接收的数据块可以有不同的类型值。 可以这么说消息队列就是一个消息的链表。每个消息队列都有一个队列头,用结构struct msg_queue来描述。队列头中包含了该消息队列的大量信息,包括消息队列键值、用户ID、组ID、消息队列原创 2017-02-17 04:23:23 · 397 阅读 · 0 评论 -
linux task_struct的结构体成员信息
我在网上查阅task_struct的相关信息时,讲的有点乱,让人很难整理,所以我在这里把网上的资料整理一下,这里只列出task_stuct的结构体成员,相关的信息以后会补充。 1.进程状态。 2、进程标识符(PID) 3、进程内核栈 4、标记 5、表示进程亲属关系的成员 6、ptrace系统调用 7、Performance Event 8、进程调度 9、进程地址空间 10、判原创 2017-01-12 13:18:16 · 472 阅读 · 0 评论 -
Linux平台下安装Mongodb
找到一篇写得很好的文章,解决了我很多的问题。: http://coderschool.cn/1709.html另外在附上关闭mongodb的方法来自:http://outofmemory.cn/code-snippet/15999/how-to-shutdown-mongodb: killall mongodb //or kill -9 mongo-pid 上面的方法确实可以关闭mongo转载 2017-06-06 10:50:35 · 315 阅读 · 0 评论