linux
pynash123
这个作者很懒,什么都没留下…
展开
-
linux下僵尸进程和孤儿进程
子进程是通过父进程创建的,子进程也可以继续创建子进程。父进程无法预测子进程到底什么时候结束,当一个子进程结束之后,它的父进程需要调用wait()或者waitpid()系统调用取得子进程的终止状态。僵尸进程 :子进程结束了,但是父进程没有调用wait()或者waitpid()取得子进程的终止状态,这个子进程将变成一个僵尸进程。利用命令ps,可以看到有标记为Z的进程就是僵尸进程。僵尸进程危害:...原创 2019-12-11 20:25:21 · 264 阅读 · 0 评论 -
linux条件变量相关测试
相关参考注释学习#include <stdio.h>#include <pthread.h>#include "stdlib.h"#include "unistd.h"#include <sys/time.h>#include <time.h>pthread_mutex_t mutex;pthread_cond_t con原创 2019-04-07 16:05:50 · 134 阅读 · 0 评论 -
linux WIFEXITED WEXITSTATUS
1,WIFEXITED(status) 这个宏用来指出子进程是否为正常退出的,如果是,它会返回一个非零值。(请注意,虽然名字一样,这里的参数status并不同于wait唯一的参数–指向整数的指针status,而是那个指针所指向的整数,切记不要搞混了。)2,WEXITSTATUS(status) 当WIFEXITED返回非零值时,我们可以用这个宏来提取子进程的返回值,如果子进程调用exit(5)...原创 2019-04-07 16:04:48 · 4198 阅读 · 1 评论 -
linux查看上一条命令的执行结果
Echo $?0 成功 其他失败原创 2019-04-07 15:13:32 · 22171 阅读 · 0 评论 -
Linux标准输入、输出和错误的文件重定向
文件描述符系统中有12个文件描述符,常用的是0,1,2,分别是是标准输入、输出和错误。标准输入默认是文件描述符0。它是命令的输入,缺省是键盘,也可以是文件或其他命令的输出。标准输出默认是文件描述符1。它是命令的输出,缺省是屏幕,也可以是文件。标准错误默认是文件描述符2。这是命令错误的输出,缺省是屏幕,同样也可以是文件。文件重定向在执行命令时,可以通过重定向指定命令的标准输入、输出和错误...原创 2019-04-07 16:01:06 · 1015 阅读 · 0 评论 -
linux 下使用iptables 模拟网络延迟和丢包
iptables -A INPUT -s 10.47.180.70/72 -j DROP屏蔽70-72网段到执行该命令的机器的包iptables -A INPUT -s 10.47.180.70 -j DROP屏蔽70到执行该命令的机器的包iptables -A INPUT -s 10.47.180.70/72 -j ACCEPT恢复70-72网段到执行该命令的机器的包iptables...原创 2019-04-07 15:10:04 · 5956 阅读 · 0 评论 -
linux利用iptables打开关闭端口
open:iptables -I INPUT -p tcp --dport 9000 -j ACCEPTiptables -I OUTPUT -p tcp --dport 9000 -j ACCEPTclose:iptables -I INPUT -p tcp --dport 9000 -j DROPiptables -I OUTPUT -p tcp --dport 9000 -j DR...原创 2019-07-09 11:17:37 · 663 阅读 · 0 评论 -
找出当前文件夹下大小排在前十的文件夹
du -sh * | sort -nr | head -n 10sort:-n : 按照字符串表示的数字值来排序-r :按照反序排列head :-n : 取出前多少行原创 2019-07-25 15:00:37 · 426 阅读 · 0 评论 -
linux查看cpu 内存 io 系统负载等
查看CPU使用情况的命令vmstat 5每5秒刷新一次,最右侧有CPU的占用率的数据toptop 然后按Shift+P,按照进程处理器占用率排序查看内存使用情况的命令free用free命令查看内存占用情况toptop 然后按Shift+M, 按照进程内存占用率排序查看磁盘i/oiostat用iostat查看磁盘/dev/sdc3的磁盘i/o情况,每两秒刷新一次...原创 2019-07-25 15:07:26 · 1504 阅读 · 0 评论 -
gdb 打印map等stl
有的gdb版本不支持打印map等stl,因此需要插件,在网上找到一个插件,进入gdb,source该文件即可。之后通过pmap(pvector等)可以获取打印map的提示,下面是工具代码,保存下,方便以后使用。# ...原创 2019-04-07 16:05:57 · 5109 阅读 · 0 评论 -
opendir readdir
opendir()和readdir()头文件<sys/types.h><dirent.h>DIR* opendir (const char * path ); (获取path子目录下的所由文件和目录的列表,如果path是个文件则返回值为NULL)打开一个目录,在失败的时候返回一个空的指针。 DIR 结构体的原型为:struct_dirstream 在...原创 2019-04-07 16:06:17 · 149 阅读 · 0 评论 -
linux普通用户下运行需要root权限的代码
fanotify监控文件需要root权限,然而在实际应用中不能在root下运行。chown root achmod u+s a这样操作之后就可以原创 2019-04-07 16:10:38 · 1211 阅读 · 0 评论 -
gdb显示字符串不全
GDB下用p看一个字符串的时候默认显示是截断的,可以通过set print element 0命令显示完整的字符串。原创 2019-04-07 16:16:39 · 2760 阅读 · 0 评论 -
linux系统函数的错误码和错误信息
错误码Linux中系统调用的错误都存储于 errno中,头文件errno.h,范围为0-255Errno只保存最近一次的系统错误(一般用在调用系统函数时),下一次的错误码会覆盖掉上一次的错误。在单线程的程序中,errno是全局变量。在多线程程序中,每个线程有各自的error,是线程安全的。错误信息有三个函数可以打印错误信息分别如下:stdio.h中:void perror(const...原创 2019-04-07 16:14:56 · 1069 阅读 · 0 评论 -
linux access函数
int access(const char filenpath, int mode);确定文件或文件夹的访问权限,成功返回0,失败-1filenpath 文件或文件夹的路径,当前目录直接使用文件或文件夹名 备注:当该参数为文件的时候,access函数能使用mode参数所有的值,当该参数为文件夹的时候,access函数值能判断文件夹是否存在。在WIN NT 中,所有的文件夹都有读和写权限 ...原创 2019-04-07 16:13:30 · 134 阅读 · 0 评论 -
linux下线程间通过条件变量同步以及函数退出
#include &amp;amp;amp;lt;stdio.h&amp;amp;amp;gt;#include &amp;amp;amp;lt;pthread.h&amp;amp;amp;gt;#include &amp;amp;quot;stdlib.h&amp;amp;quot;#include &amp;amp;quot;unistd.h&amp;amp;quo原创 2019-04-07 16:17:57 · 192 阅读 · 0 评论 -
Linux同时执行多条shell语句
在开发中碰到用popen函数执行一条shell命令,然后用用popen函数执行echo $?获取执行结果,但是获取不到,因为每个popen会fork子进程执行,两次执行不是同一个进程,因此获取不到第一条命令执行结果。需要同时执行多调皮shell语句。1、cmd1;cmd2…从左到右依次执行,前面的命令执行成功与否对后续执行没影响。2、cmd1&&cmd2…依次执行依次执行,前面...原创 2019-04-07 16:10:32 · 3236 阅读 · 0 评论 -
linux fanotify和inotify
工作中用到fanotify和inotify,记录下Fanotify 有三个个基本的模式:directed,per-mount 和 global。其中,directed 模式和 inotify 类似,直接工作在被监控的对象的 inode 上,一次只可以监控一个对象。因此需要监控大量目标时也很麻烦。Global 模式则监控整个文件系统,任何变化都会通知 Listener。Per-mount 模式工作...原创 2019-04-07 16:07:36 · 2754 阅读 · 0 评论 -
Linux普通用户下执行要求root权限的程序
做文件监控工具时用到fanotify,对权限要求较高(root),然而只能在普通用户下执行,可通过如下两个命令:Chown root a.outChmod u+s a.out之后可在普通用户下运行...原创 2019-04-07 16:08:56 · 4277 阅读 · 0 评论 -
linux 通过popen执行shell命令
popen通过fork子进程执行命令若有多条shell命令需要执行,而且命令之间有关系,不能通过多个popen执行,因为会在不同进程下执行,可以通过; && || 在同一个popen里面 执行#include <stdio.h>int main(int argc, char *argv[]){ char buf[128]; FILE *pp;...原创 2019-04-07 16:08:34 · 531 阅读 · 0 评论 -
通过samba实现linux和windows下文件共享
1.1.1添加samba用户/创建samba路径添加的Samba用户首先必须是Linux用户1、samba配置:(这是smb服务器配置目录)回车。comment = Home Directories #非必要,备注browseable = no #列表访问writable = yes #可写入valid users = %S #一个实体用户,(=user1,user2 或...原创 2019-04-07 16:16:52 · 206 阅读 · 0 评论