
linux
文章平均质量分 72
caiyunl
这个作者很懒,什么都没留下…
展开
-
同一进程中的线程究竟共享哪些资源
线程共享的环境包括:进程代码段、进程的公有数据(利用这些共享的数据,线程很容易的实现相互之间的通讯)、进程打开的文件描述符、信号的处理器、进程的当前目录和进程用户ID与进程组ID。 进程拥有这许多共性的同时,还拥有自己的个性。有了这些个性,线程才能实现并发性。这些个性包括: 1.线程ID 每个线程都有自己的线程ID,这个ID在本进程中是唯一的。进程用此来标 识线程。转载 2012-03-25 15:27:27 · 893 阅读 · 0 评论 -
python 在linux中使用sqlite3
python 在linux中使用sqlite3 如果出现如下错误:>>> import sqlite3Traceback (most recent call last): File "", line 1, in File "/picb/extprog/inst/development/python-2.6.2-linux-amd64/lib/py转载 2012-09-14 19:14:54 · 3151 阅读 · 0 评论 -
memcached内存管理(3) ----------------assoc
assoc.{h,c}这个文件的作用是通过item的hash值来对item进行存取和删除的操作,当然删除是指从hash表中删除,而不是真正的释放内存一些重要的全局变量typedef unsigned long int ub4; /* unsigned 4-byte quantities */typedef unsigned char ub1;原创 2012-08-21 01:13:23 · 1486 阅读 · 0 评论 -
memcached内存管理(2) ----------------items
memcached.h中item的声明/** * Structure for storing items within memcached. */typedef struct _stritem { struct _stritem *next; struct _stritem *prev; struct _stritem *h_next; /* hash原创 2012-08-17 16:30:55 · 1865 阅读 · 0 评论 -
memcached内存管理(1) ----------------slabs
slabs.{h,c}slab的数据结构如下:typedef struct { unsigned int size; /* sizes of items 每个item的大小*/ unsigned int perslab; /* how many items per slab 每个slabs中能容纳多少个item*/ voi原创 2012-08-16 22:04:09 · 2012 阅读 · 0 评论 -
Linux下core文件调试方法
原文地址:http://www.cnblogs.com/momi/archive/2012/03/18.html在程序不寻常退出时,内核会在当前工作目录下生成一个core文件(是一个内存映像,同时加上调试信息)。使用gdb来查看core文件,可以指示出导致程序出错的代码所在文件和行数。1.core文件的生成开关和大小限制 1)使用ulimit -c命令可查看c转载 2012-08-15 22:18:02 · 801 阅读 · 0 评论 -
epoll的使用
epoll的ET模式和LT模式可通过下面代码来测试int handleMessage(int sockfd){ char buf[MAXBUFF + 1] = {0}; int len; len = recv(sockfd, buf, MAXBUFF ,0); if(len > 0) { printf("%d:%s\n%d bytes received.\n", sockfd转载 2012-07-23 17:06:57 · 612 阅读 · 0 评论 -
linux make使用的简单翻译
原文地址:http://www.cs.umd.edu/class/fall2002/cmsc214/Tutorial/makefile.html<!--@page {margin:2cm}p {margin-bottom:0.21cm}--><!--@page {margin:2cm}pre.cjk {font-family:翻译 2012-07-19 22:33:36 · 672 阅读 · 0 评论 -
linux网络编程的一些基础知识--基础API相关
大多数套接字函数都需要一个指向套接字地址结构的指针作为参数。IPV4套接字地址结构struct in_addr{ in_addr_t s_addr; //32bits};struct sockaddr_in{ uint8_t sin_len; //8bits; sa_family_t sin_family原创 2012-07-18 15:50:52 · 1130 阅读 · 1 评论 -
linux网络编程的一些基础知识--TCP协议相关
首先了解的TCP协议的报文格式,网上和书本上都有很多介绍,我们只要知道它包含了以下几个重要字段一:源端口号和目标端口号 (16bits),需要注意的是源和目标ip地址不在TCP报文中,而是在IP报文中二:序号和确认序号(32bits),序号用来标识从TCP端发送的数据字节流,表示在这个报文中的第几个数据字节;原创 2012-07-18 15:06:58 · 689 阅读 · 0 评论 -
linux2.6下系统调用被信号中断时的响应
测试代码如下#include#include#include#includestatic void sigfunc(int signo){ if(signo == SIGUSR1) { printf("receive sigusr1\n"); }}int main(){ char str[10]; if(signal(SIGUSR1, sigfunc)原创 2012-07-09 20:22:26 · 1968 阅读 · 0 评论 -
关于linux下标准读入read和fgets和scanf的区别
测试代码如下#include "../tcpiplib.h"int main(int argc, char **argv){ssize_t n; size_t len; char buf[10]; //memset(buf, 0, sizeof(buf)); n = 8; len = read(fileno(stdin), buf, n); write(fileno(原创 2012-04-23 14:34:54 · 5811 阅读 · 0 评论 -
不同系统下的换行符
\n = CR (Carriage Return) // Used as a new line character in Unix\r = LF (Line Feed) // Used as a new line character in Mac OS\n\r = CR + LF // Used as原创 2012-04-21 21:46:59 · 664 阅读 · 0 评论 -
一点细节 关于linux下tcp断开连接时的情况
如果客户端先断开连接,server端再断开,那么server端占用的端口号立马可以用。但是客户端未断开情况下,server自行关闭,那么占用的端口将进入TIME_WAIT状态而暂时不可使用。因为主动断开那边会出现TIME_WAIT,而被动断开则不会吗echoserv.c#include "mytcplib.h"static void servecho(int c原创 2012-04-15 10:21:20 · 2468 阅读 · 0 评论 -
ubuntu下安装chrome
玩了一个星期的Fedora,很多问题搞不定,还是回到Ubuntu了。 今天又重装了系统,然后安装Google-Chrome,出错:代码:yaowei@yaowei-desktop:/tmp$ sudo dpkg -i google-chrome-stable_current_i386.deb(正在读取数据库 ... 系统当前共安装有 126356 个文件和目录。)正转载 2012-04-26 21:30:34 · 7171 阅读 · 0 评论 -
gcc 与 g++的不同点 搞不懂
一段代码如下:void *buff;buff = malloc(len);snprinf((char *)buff, len, "Num is : %d", len);mq_send(mqd, buff, len, prio);g++使用错误如下yunlong@ubuntu:~/code/mq$ g++ -o mqsend mqsend.c -lrtmqs原创 2012-04-10 10:42:48 · 1393 阅读 · 0 评论 -
静态库与动态库
库从本质上来说是一种可执行代码的二进制格式,可以被载入内存中执行。库分静态库和动态库两种。 静态库和动态库的区别1. 静态函数库 这类库的名字一般是libxxx.a;利用静态函数库编译成的文件比较大,因为整个 函数库的所有数据都会被整合进目标代码中,他的优点就显而易见了,即编译后的执行程序不需要外部的函数库支持,因为所有使用的函数都已经被编译进去了。当然这也会成为他的缺点,因转载 2012-03-26 10:46:55 · 668 阅读 · 0 评论 -
标准输入,标准输出和标准出错的缓冲
APUE第5章已经说得很清楚了,这里就记录一下。标准I/O提供3种缓冲类型:(1)全缓冲:填满标准I/O缓冲区后才进行实际的I/O操作。(2)行缓冲:当在输入和输出中遇到换行符('\n')时,才执行实际的I/O操作。 两个限制: (a)缓冲区满了,好理解。 (b)任何时候遇到要求从一个不带缓冲的流,或者一个行缓冲的流(它要原创 2012-09-18 23:21:16 · 1401 阅读 · 0 评论