随笔分类 - Linux C
线程堆栈大小 pthread_attr_setstacksize 的使用【转】
摘要:author: 张继飞pthread_create 创建线程时,若不指定分配堆栈大小,系统会分配默认值,查看默认值方法如下:# ulimit -s8192#上述表示为8M;单位为KB。也可以通过# ulimit -a其中 stack size 项也表示堆栈大小。ulimit -s value 用来重新设置stack 大小。一般来说默认堆栈大小为 8388608;堆栈最小为 16384 。 单位为字节。堆栈最小值定义为PTHREAD_STACK_MIN ,包含#include <limits.h>后可以通过打印其值查看。对于默认值可以通过pthread_attr_getstacksi
阅读全文
linux setsockopt
摘要:1.closesocket(一般不会立即关闭而经历TIME_WAIT的过程)后想继续重用该socket:BOOL bReuseaddr=TRUE;setsockopt(s,SOL_SOCKET ,SO_REUSEADDR,(const char*)&bReuseaddr,sizeof(BOOL));2. 如果要已经处于连接状态的soket在调用closesocket后强制关闭,不经历TIME_WAIT的过程:BOOL bDontLinger = FALSE;setsockopt(s,SOL_SOCKET,SO_DONTLINGER,(const char*)&bDontLing
阅读全文
Linux下getsockopt/setsockopt 函数说明
摘要:【getsockopt/setsockopt系统调用】功能描述: 获取或者设置与某个套接字关联的选 项。选项可能存在于多层协议中,它们总会出现在最上面的套接字层。当操作套接字选项时,选项位于的层和选项的名称必须给出。为了操作套接字层的选项,应该 将层的值指定为SOL_SOCKET。为了操作其它层的选项,控制选项的合适协议号必须给出。例如,为了表示一个选项由TCP协议解析,层应该设定为协议 号TCP。用法:#include <sys/types.h>#include <sys/socket.h>intgetsockopt(int sock, int level, int
阅读全文
TCP/IP编程中协议无关性的函数getaddrinfo()
摘要:一、getaddrinfo函数介绍:gethostbyname和gethostbyaddr这两个函数仅仅支持IPv4,getaddrinfo函数能够处理名字到地址以及服务到端口这两种转换,返回的是一个sockaddr结构的链表而不是一个地址清单。这些sockaddr结构随后可由套接口函数直接使用。如此以来,getaddrinfo函数把协议相关性安全隐藏在这个库函数内部。应用程序只要处理由getaddrinfo函数填写的套接口地址结构。该函数在POSIX规范中定义了。#include<netdb.h>int getaddrinfo( const char *hostname, con
阅读全文
Linux下的多线程编程(转)
摘要:1 引言 线程(thread)技术早在60年代就被提出,但真正应用多线程到操作系统中去,是在80年代中期,solaris是这方面的佼佼者。传统的Unix也支持线程的概念,但是在一个进程(process)中只允许有一个线程,这样多线程就意味着多进程。现在,多线程技术已经被许多操作系统所支持,包括Windows/NT,当然,也包括Linux。 为什么有了进程的概念后,还要再引入线程呢?使用多线程到底有哪些好处?什么的系统应该选用多线程?我们首先必须回答这些问题。 使用多线程的理由之一是和进程相比,它是一种非常"节俭"的多任务操作方式。我们知道,在Linux系统下,启动一个新的进
阅读全文
linux中fork创建进程讲解(转)
摘要:大家知道Linux中创建子进程的一个很好的方法是函数调用fork,但是很多初学者对fork的理解上可能有点困难。我们举个例子来看看fork的用法吧。 大家用fork的时候记住fork是“分叉”的意思就很好理解了。 记得初学fork() 函数及遇到这个函数时,总是不能理解fork为什么会这样写,就会分成父子两个进程。 先看一下fork() 的经典模式//--------------------------------------------------------beginint pid=fork();if(pid < 0){//失败,一般是该用户的进程数达到限制或者内存被用光了.....
阅读全文
source insight 调用标准C函数时提示方法
摘要:输入自定义函数时会代码提示输入标准C函数时没有提示解决方法Options->Prefernces->Create Common Projects->Standrd C/C++ and Windows Headers "...VC98/include"创建一个包含头文件的工程如CStandard_WIN32.PR然后在Options->Prefernces->Project symol path中Add Project to Path将CStandard_WIN32.PR添加进来对于Linux程序只需拷贝linux中的头文件,然后创建一个工程包含
阅读全文
浙公网安备 33010602011771号