Unix/linux
robertXin
不为写代码而写代码
展开
-
VMware虚拟机下的linux全屏
1、点击“view”——然后将Autofit window这个选项勾选。(一般版本高的VMware虚拟机都会默认该设置)2、该步骤是关键,具体的操作为:点击“VM”——选中“install vmware-tools”这个选项即可。接下来的操作都是在虚拟机中的linux中进行(1)打开linux的cdrom看是否有VMware Tools 的文件,如果有则说明“instal...原创 2012-04-24 19:15:33 · 304 阅读 · 0 评论 -
linux c学习笔记----信号(sigaction,sigaddset,sigprocmask)
sigaction(查询或设置信号处理方式) 相关函数 signal,sigprocmask,sigpending,sigsuspend表头文件 #include<signal.h>定义函数 int sigaction(int signum,const struct sigaction *act ,s...原创 2012-11-30 16:23:16 · 644 阅读 · 0 评论 -
linux信号列表
我们运行如下命令,可看到Linux支持的信号列表:$ kill -l1) SIGHUP 2) SIGINT 3) SIGQUIT 4) SIGILL 5) SIGTRAP 6) SIGABRT 7) SIGBUS 8) SIGFPE 9) SIGKILL 10) SIGUSR1 11) SI...原创 2012-11-30 16:40:59 · 86 阅读 · 0 评论 -
linux c学习笔记----消息队列(ftok,msgget,msgsnd,msgrcv,msgctl)
ftok()#include <sys/types.h>#include <sys/ipc.h>函数原型: key_t ftok( const char * pathname , int proj_id );参数: pathname 就时你指定的文件名(该文件必须是存在而且可以访问的),id是子序号,虽 然为i...原创 2012-12-07 17:46:25 · 652 阅读 · 0 评论 -
linux c学习笔记----共享内存(shmget,shmat,shmdt,shmctl)
shmgetint shmget(key_t key, size_t size, int flag);key: 标识符的规则size:共享存储段的字节数flag:读写的权限返回值:成功返回共享存储的id,失败返回-1key_t key----------------------------------------------- key标识共享内存的键值: 0/IPC_PRIVATE。 当ke...原创 2012-12-11 18:08:52 · 1356 阅读 · 0 评论 -
linux c学习笔记----线程创建与终止
进程原语线程原语描述forkpthread_create创建新的控制流exitpthread_exit从现有的控制流中退出waitpidpthread_join从控制流中得到退出状态atexitpthread_cancel_push注册在退出控制流时调用的函数getpidpthread_self获取...原创 2012-12-14 17:32:42 · 247 阅读 · 0 评论 -
linux c学习笔记----线程同步
1.互斥量互斥变量用pthead_mutex_t数据类型来表示,在使用互斥变量之前,必须首先对它进行初始化,可以把它置为常量PTHREAD_MUTEX_INITIALIZER(只对静态分配的互斥量),也可以能过调用pthread_mutex_init函数进行初始化。如果动态地分配互斥量(例如通过调用malloc)函数,那么释放内存前需要使用pthread_mutex_destroy....原创 2012-12-28 17:49:09 · 112 阅读 · 0 评论 -
linux c学习笔记----线程属性
一.线程属性 线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。 名称::pthread_attr_init/pthread_attr_destroy功能...原创 2013-01-04 17:38:55 · 172 阅读 · 0 评论 -
linux c学习笔记----互斥锁属性
互斥锁属性使用互斥锁(互斥)可以使线程按顺序执行。通常,互斥锁通过确保一次只有一个线程执行代码的临界段来同步多个线程。互斥锁还可以保护单线程代码。要更改缺省的互斥锁属性,可以对属性对象进行声明和初始化。通常,互斥锁属性会设置在应用程序开头的某个位置,以便可以快速查找和轻松修改。表 4–1 列出了用来处理互斥锁属性的函数。表 4–1 互斥锁属性例程操作...原创 2013-01-05 18:37:53 · 330 阅读 · 0 评论 -
linux c学习笔记----TCP基础客户/服务编程(socket,bind等)
socket(建立一个socket通信) 相关函数 accept,bind,connect,listen表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int socket(int domain,int type,int protocol);...原创 2013-01-10 17:29:32 · 243 阅读 · 0 评论 -
linux c学习笔记----select函数详解
select系统调用是用来让我们的程序监视多个文件句柄(file descriptor)的状态变化的。程序会停在select这里等待,直到被监视的文件句柄有某一个或多个发生了状态改变。 何为文件句柄????文件句柄在Linux里很多,如果你man某个函数,在函数返回值部分说到成功后有一个文件句柄被创建的都是,如man socket可以看到“On success, a file des...原创 2013-01-11 17:25:36 · 105 阅读 · 0 评论 -
linux c学习笔记----UDP基础客户/服务编程(sendto,recvfrom)
sendto(经socket传送数据)相关函数 send , sendmsg,recv , recvfrom , socket表头文件 #include < sys/types.h >#include < sys/socket.h >定义函数 int sendto ( int s , const void...原创 2013-01-14 18:01:28 · 1090 阅读 · 0 评论 -
linux c学习笔记----SCTP基础客户/服务编程(setsockopt,sctp_sendmsg等)
在编程之前先了解一下sctp套接字选项 setsockopt(设置socket状态) 相关函数 getsockopt表头文件 #include<sys/types.h>#include<sys/socket.h>定义函数 int setsockopt(int s,int level,int optn...原创 2013-01-15 17:53:09 · 1533 阅读 · 0 评论 -
redis2.6.9源码学习---dict
redis的hashtable------dict.c先了解基本的structtypedef struct dictEntry { void *key; union { void *val; uint64_t u64; int64_t s64; } v; struct dictEntry ...原创 2013-02-07 11:59:51 · 93 阅读 · 0 评论 -
redis2.6.9源码学习---adlist
源码adlist.c adlist.h,先来看看adlist的结构/* Node, List, and Iterator are the only data structures used currently. */typedef struct listNode { struct listNode *prev; struct listNode *next; ...原创 2013-02-07 16:27:32 · 82 阅读 · 0 评论 -
redis2.6.9源码学习---ziplist
ziplist相比之前分析的zipmap要相对复杂一些,但也有一些相似的地方。首先通过注释来了解一下它的基本结构 <zlbytes><zltail><zllen><entry><entry><zlend> * <zlbytes>是一个无符号整数,用来存储 ziplist占用的字节数。 * &am原创 2013-05-16 12:05:39 · 105 阅读 · 0 评论 -
linux c学习笔记----信号(alarm,kill,singal)
alarm(设置信号传送闹钟)相关函数 signal,sleep表头文件 #include<unistd.h>定义函数 unsigned int alarm(unsigned int seconds);函数说明 alarm()用来设置信号SIGALRM在经过参数seconds指定的秒数后传送给目...原创 2012-11-23 11:41:11 · 197 阅读 · 0 评论 -
LNAMP Linux+Apache+Nginx+MySQL+PHP
LNAMP Linux+Apache+Nginx+MySQL+PHP环境配置最近看到很多人都在LNAMP,变得越来越流行了,干脆将我之前自己做的重新优化了一边,更新了新版程序,并降低了55%的内存消耗,速度和负载都比0.1版提高了不少。LNAMP 介绍:Centos 5.5 32bitApache 2.2.17Nginx 0.8.54MySQL 5.1.55PHP 5.2.1...原创 2012-04-27 19:21:21 · 135 阅读 · 0 评论 -
Linux防火墙添加端口
当Linux打开防火墙后,你会发现,从本机登录23端口是没有问题的,但是如果从另一台pc登录该linux系统后,你会发现提示这样的错误: 不能打开到主机的连接, 在端口 23: 连接失败 因为linux防火墙默认是关闭23端口的,如果允许远程登录,可以关掉防火墙,也可以开防火墙开放23端口,具体如下: 即时生效,重启后失效 开启: service iptables start ...原创 2012-05-03 14:52:08 · 377 阅读 · 0 评论 -
vi的使用
Vi的3种运行模式普通(normal)模式,又称命令模式插入(insert)模式命令行(cmdline)模式 进入Vi后首先进入的是普通模式,Vi等待编辑命令输入,也就是此时输入的字母都将被作为命令来解释。 在普通模式下,输入插入命令i、附加命令a、打开命令o等进入插入模式,在插入模式下用户输入的任何字符都被Vi当作文件内容保存起来,并显示在屏幕。...原创 2012-05-09 09:43:31 · 70 阅读 · 0 评论 -
ffmpeg-php的安装详解
ffmpeg是一个处理音频视频的东东,ffmpeg-php是php的一个扩展去官网上下载0.6.0版本,早的版本我试过装不上先yum install ffmpeg ffmpeg-devel不然等会configure会通不过装好后ffmpeg -formats,看下是否成功了将下载好的扩展包解压,phpize,./configure,make到这里会出现找不到PIX_F...原创 2012-05-19 13:28:09 · 406 阅读 · 0 评论 -
chmod 详解
权限对一个系统来说是非常重要的,所以掌握chmod是必要的。ls -l查看所在目录所有文件的权限信息-rw-r--r-- 1 root root 25 05-24 14:33 luoxin.txt第一个'-'表示文件的类型为普通文件,d表示文件夹,l表示链接文件后面9个字符表示此文件的权限r表示读,w表示写,x表示可执行chmo...原创 2012-05-24 16:05:06 · 169 阅读 · 0 评论 -
linux中cp强制覆盖
[root@bogon QWeiBo]# aliasalias cp='cp -i'alias l.='ls -d .* --color=tty'alias ll='ls -l --color=tty'alias ls='ls --color=tty'alias mv='mv -i'alias rm='rm -i'alias which='alias | /usr/bi...原创 2012-05-29 16:52:26 · 154 阅读 · 0 评论 -
CentOS设置开机启动
CentOS下添加程序到服务并且设置服务自动启动的两种方法:第一种方法: 利用 chkconfig 来配置启动级别在CentOS或者RedHat其他系统下,如果是后面安装的服务,如httpd、mysqld、postfix等,安装后系统默认不会自动启动的。就算手动执行/etc/init.d/mysqld start启动了服务,只要服务器重启后,系统仍然不会自动启动服务。在这个时候,我们就需要在...原创 2011-12-01 17:24:37 · 79 阅读 · 0 评论 -
linux c学习笔记----进程的概念与标志
1.进程的概念 (1)通俗的讲程序是一个包含可以执行代码的文件,是一个静态的文件.而进程是一个开始执行但是还没有结束的程序的实例.就是可执行文件的具体实现. 一个程序可能有许多进程,而每一个进程又可以有许多子进程.依次循环下去,而产生子孙进程。(2)当程序被系统调用到内存以后,系统会给程序分配一定的资源(内存,设备等等)然后进行一系列的复杂操作,使程序变成进程以供系统调用.在系统里...原创 2012-10-25 11:11:49 · 93 阅读 · 0 评论 -
linux c学习笔记----进程创建(fork,wait,waitpid)
1.pid_t fork();(1)当一个进程调用了fork 以后,系统会创建一个子进程.这个子进程和父进程不同的地方只有他的进程ID 和父进程ID,其他的都是一样.就象符进程克隆(clone)自己一样.(2)为了区分父进程和子进程,我们必须跟踪fork 的返回值. 当fork 掉用失败的时候(内存不足或者是用户的最大进程数已到)fork 返回-1,否则fork 的返回值有重要的作用.对于...原创 2012-10-25 15:35:55 · 358 阅读 · 0 评论 -
linux c学习笔记----文件的创建与读写(open,read,write)
open(打开文件) 相关函数 read,write,fcntl,close,link,stat,umask,unlink,fopen表头文件 #include<sys/types.h>#include<sys/stat.h>#include<fcntl.h>定义函数 int open( co...原创 2012-10-26 11:49:41 · 660 阅读 · 0 评论 -
linux c学习笔记----文件的属性(access,stat,fstat)
access(判断是否具有存取文件的权限) 相关函数 stat,open,chmod,chown,setuid,setgid表头文件 #include<unistd.h>定义函数 int access(const char * pathname,int mode);函数说明 access...原创 2012-10-26 14:22:57 · 299 阅读 · 0 评论 -
linux c学习笔记----目录文件的操作(opendir,readdir,closedir)
注:为什么要说目录文件?其实在linux中目录也是一种文件,只是它的内容是上级的目录和当前目录下的文件信息等,详情可以看看相关深入的书籍 opendir(打开目录)相关函数 open,readdir,closedir,rewinddir,seekdir,telldir,scandir表头文件 #include<sys/types.h&g...原创 2012-10-26 16:11:05 · 1810 阅读 · 0 评论 -
linux c学习笔记----管道文件(pipe,popen,mkfifo,pclose,dup2)
pipe(建立管道) 相关函数 mkfifo,popen,read,write,fork表头文件 #include<unistd.h>定义函数 int pipe(int filedes[2]);函数说明 pipe()会建立管道,并将文件描述词由参数filedes数组返回。filedes[0]为...原创 2012-10-29 16:46:50 · 356 阅读 · 0 评论 -
非阻塞connect编程
非阻塞模式有3种用途 1.三次握手同时做其他的处理。connect要花一个往返时间完成,从几毫秒的局域网到几百毫秒或几秒的广域网。这段时间可能有一些其他的处理要执行,比如数据准备,预处理等。 2.用这种技术建立多个连接。这在web浏览器中很普遍. 3.由于程序用select等待连接完成,可以设置一个select等待时间限制,从而缩短connect超时时间。多数实现中,connect的超时...原创 2013-04-08 17:08:23 · 90 阅读 · 0 评论 -
【转载】如何用Linux的命令正确识别cpu的个数和核数
如何在Linux下cpu的个数和核数呢?googel了一下,网上总结的很多办法都是错的或者混淆视听,没办法,靠自己了。 判断依据: 1.具有相同core id的cpu是同一个core的超线程。 2.具有相同physical id的cpu是同一颗cpu封装的线程或者cores。 英文版: 1.Physical id and core id are not necessarily consecut...原创 2013-08-20 11:40:26 · 121 阅读 · 0 评论