![](https://img-blog.csdnimg.cn/20201014180756928.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
linux
文章平均质量分 51
secret丶
这个作者很懒,什么都没留下…
展开
-
适合新手的网络编程,用socket传文件(本例传的是jpg图片) 用到sendfile函数
服务器端代码:用来接受客户端发来的文件#include#include#include#include#include#include#include#includeint main(int argc,char* argv[]){assert(argc>2);FILE *filefd=fopen("a.jpg","ab");struct sock原创 2015-09-09 09:34:46 · 1093 阅读 · 2 评论 -
shell常用文本工具
Linux下使用Shell处理文本时最常用的工具:find、grep、xargs、sort、uniq、tr、cut、paste、wc、sed、awk;提供的例子和参数都是最常用和最为实用的;我对shell脚本使用的原则是命令单行书写,尽量不要超过2行;如果有更为复杂的任务需求,还是考虑python吧;find 文件查找查找txt和pdf文件 f转载 2016-07-25 15:01:30 · 478 阅读 · 0 评论 -
[PHP+xdebug] 在Ubuntu 14.04下的PhpStorm中配置xdebug调试环境
1. 安装xdebug第一步: 得到本地PHP配置信息在终端中运行: php -i > outputphp.txt然后将得到的txt文件中的信息拷贝并复制到http://xdebug.org/wizard.php 这个页面提供的一个textarea中. 然后点击下方的Analyze按钮, 它会自动帮你解析你本地的PHP环境信息从而得到你需要下载的xdebug版本和相关配置指原创 2016-06-12 11:40:51 · 486 阅读 · 0 评论 -
Ubuntu下修改环境变量的三种方法
Ubuntu下设置环境变量有三种方法,一种用于当前终端,一种用于当前用户,一种用于所有用户: 一:用于当前终端:在当前终端中输入:export PATH=$PATH:不过上面的方法只适用于当前终端,一旦当前终端关闭或在另一个终端中,则无效。 export NDK_ROOT=/home/jiang/soft/android-ndk-r8e 只能转载 2015-12-04 14:23:03 · 36456 阅读 · 1 评论 -
Linux下source命令
Linux Source命令及脚本的执行方式解析当我修改了/etc/profile文件,我想让它立刻生效,而不用重新登录;这时就想到用source命令,如:source /etc/profile对source进行了学习,并且用它与sh 执行脚本进行了对比,现在总结一下。source命令:source命令也称为“点命令”,也就是一个点符号(.),是bash转载 2015-12-04 14:20:58 · 538 阅读 · 0 评论 -
安装libevent ubuntu下
1.是否安装安装了的话应该是这样的:如果不是,那就装一下。chen@chen-book1:~/libevent20$ ls -al /usr/lib |grep libeventlrwxrwxrwx 1 root root 21 2013-06-07 10:43 libevent-2.0.so.5 -> libevent-2.0.so.5.1.4转载 2015-09-21 10:58:33 · 760 阅读 · 0 评论 -
select poll epoll 区别
1 Select、Poll与Epoll简介Selectselect本质上是通过设置或者检查存放fd标志位的数据结构来进行下一步处理。这样所带来的缺点是:1 单个进程可监视的fd数量被限制2 需要维护一个用来存放大量fd的数据结构,这样会使得用户空间和内核空间在传递该结构时复制开销大3 对socket进行扫描时是线性扫描原创 2015-11-10 23:51:15 · 356 阅读 · 0 评论 -
多进程和多线程的优缺点
在Linux下编程多用多进程编程少用多线程编程。 IBM有个家伙做了个测试,发现切换线程context的时候,windows比linux快一倍多。进出最快的锁(windows2k的 critical section和linux的pthread_mutex),windows比linux的要快五倍左右。当然这并不是说linux不好,而且在经过实际编程之后,综合来看我觉得linu转载 2015-09-18 17:03:08 · 357 阅读 · 0 评论 -
进程间通信:管道,信号量,共享内存,消息队列
1.管道:Int fd[2];int pipe(fd);创建了一个管道,不过是单向的。fd[0]为读端,fd[1]为写端int socketpair(int domain, int type, int protocol, int fd[2]);双向管道2.信号量:#includeint semget(key_t key,int num_sems,int sem_fla原创 2015-09-18 10:46:20 · 433 阅读 · 0 评论 -
linux信号掩码
1. linux内部用一个128个字节(多个unsigned long)的结构(sigset_t)表示信号的掩码,在i386平台上就是128/4=32个long,每位对应一个信号的掩码,最大支持128*8 = 1024个信号。现在只有64个信号,所以只要考虑最前面的两个long就可以了。sigset_t mask;unsigned long *pl = (unsigned long*)&m转载 2015-09-16 14:22:44 · 719 阅读 · 0 评论 -
epoll系列系统调用
需要包含的头文件#include1. int epoll_create(int size):在内核新建一个事件表(这是与select和poll不同的地方),返回这个事件表的文件描述符,这个文件描述符将会作为epoll系统调用的第一个参数。另外size参数并不起作用,只是给内核一个提示,它的事件表需要多大。2.int epoll_ctl(int epfd,int op,int fd,原创 2015-09-15 13:59:11 · 537 阅读 · 0 评论 -
IO:同步、异步、阻塞、非阻塞的区别
同步(synchronous) IO和异步(asynchronous) IO,阻塞(blocking) IO和非阻塞(non-blocking)IO分别是什么,到底有什么区别?这个问题其实不同的人给出的答案都可能不同,比如wiki,就认为asynchronous IO和non-blocking IO是一个东西。这其实是因为不同的人的知识背景不同,并且在讨论这个问题的时候上下文(context)也不转载 2015-09-11 17:48:52 · 360 阅读 · 0 评论 -
将文件描述符设置为非阻塞
int setnonblocking(int fd){ int old_option=fcntl(fd,F_GETFL); int new_option=old_option|O_NONBLOCK; fcntl(fd,F_SETFL,new_option); return old_option;}以后肯定会经常用到,所以先记下来!原创 2015-09-09 14:53:59 · 1382 阅读 · 0 评论 -
进程pid,ppid;进程uid,euid;用户uid,guid
1、当我们创建用户时,由我们为新建用户命名和设置密码,同时系统会为我们所创建的用户名关联一个号,就是所谓的用户uid。同时我们还可以把这个用户放到某个用户群里,类似的,用户群也可以我们手工建立。如果建立用户时,不指明所建的用户属于哪个用户群,则系统会自动建立一个跟用户名同名的用户群。不管手工建立还是自动建立,系统都会为用户群关联一个号,这个号称之为gid。用户uid所属的群的gid就是用户的gid转载 2015-09-09 15:55:33 · 1464 阅读 · 0 评论 -
centos配置国内源
网易(163)yum源是国内最好的yum源之一 ,无论是速度还是软件版本,都非常的不错,将yum源设置为163yum,可以提升软件包安装和更新的速度,同时避免一些常见软件版本无法找到。具体设置方法如下:1,进入yum源配置目录cd /etc/yum.repos.d2,备份系统自带的yum源mv CentOS-Base.repo CentOS-Base.repo.bk下载转载 2016-08-04 18:00:45 · 470 阅读 · 0 评论