Linux程序设计(C/C++)
woods2001
IT农民工一枚
展开
-
Linux进程管理
环境变量的获取 #include #include #include extern char **environ;int main(){ char **env=environ; while(*env) { printf("%s/n",*env++); } return 0;} fork函数原创 2009-10-07 20:20:00 · 526 阅读 · 0 评论 -
LINUX 自启动管理
前言linux有自己一套完整的启动体系,抓住了linux启动的脉络,linux的启动过程将不再神秘。 阅读之前建议先看一下附图。 本文中假设inittab中设置的init tree为: /etc/rc.d/rc0.d /etc/rc.d/rc1.d /etc/rc.d/rc2.d /etc/rc.d/rc3.d /etc/rc.d/r原创 2010-01-25 11:18:00 · 1054 阅读 · 0 评论 -
Linux2.6 内核的 Initrd 机制解析
1.什么是 Initrd initrd 的英文含义是 boot loader initialized RAM disk,就是由 boot loader 初始化的内存盘。在 linux内核启动前, boot loader 会将存储介质中的 initrd 文件加载到内存,内核启动时会在访问真正的根文件系统前先访问该内存中的 initrd 文件系统。在 boot load原创 2010-02-04 20:52:00 · 472 阅读 · 0 评论 -
获取本程序绝对路径
经常看到有人提问在linux中如何获取当前应用程序的绝对路径, 却很少有人能比较好的解答. 现转贴www.linuxforum.net上的一篇文章中的一段, 希望能对受这个问题困扰的人有帮助. 13.12 如何获取当前进程对应之静态映像文件的绝对路径 A: hushui110@水木清华转载 2009-12-13 20:03:00 · 796 阅读 · 0 评论 -
va_start() va_end()函数应用
1:当无法列出传递函数的所有实参的类型和数目时,可用省略号指定参数表void foo(...);void foo(parm_list,...);2:函数参数的传递原理函数参数是以数据结构:栈的形式存取,从右至左入栈.eg:Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHi原创 2009-12-22 23:03:00 · 649 阅读 · 0 评论 -
user is not in the sudoers file
Ubuntu8.04版本,在一般用户下执行sudo命令提示user is not in the sudoers file. This incident will be reported.解决方法: 一、$where is sudoers -------找出文件所在的位置,默认都是/etc/sudoers 二、#chmod u+w /e转载 2010-03-05 13:55:00 · 1044 阅读 · 0 评论 -
基于linux下控制台,多线程并发控制的聊天程序(服务器端)
废话不多说了 把源代码贴上来吧 留作以后学习的参考和回顾 涉及多线程,DGRAM socket编程 #include #include #include #include #include #include #include #include #include #include #include #define PORT 4000#defi原创 2009-09-24 17:29:00 · 2275 阅读 · 0 评论 -
Linux下简单的socket编程
其实,有过Window网络编程经验的人,会很快的熟悉简单的Linux网络编程,其中大部分有关socket的命令都是相似的,其中存在的区别有二点: 1.windows有关socket编程需要加载相关的链接库,比如:ws2_32.lib,其中头文件是,而Linux下却不需要加载这样的连接库,只要包含相关的头文件就行。 2.Linux中的设备无关性,Linux把一切的设备,文件,套接字都原创 2009-09-15 14:50:00 · 1693 阅读 · 0 评论 -
抓取url的超链接程序(使用到libcurl和libxml2)
抓取url的超链接程序(使用到libcurl和libxml2)写了一个c++语言小程序,当作练习。c++文件:#include #include #include #include #include #include #include #include using namespace std;#ifdef _MSC_VER#def原创 2010-09-16 16:30:00 · 1923 阅读 · 0 评论 -
sock通信--数据结构的传送
sock通信中有几个问题必须注意,由于标准的不统一,有的机器使用的大端存储,而有的机器使用的是小端存储(如果对大小端不了解可以上网搜寻一下相关信息). 我们的机器的存储方式各不相同,但是由于历史原因,网络字节序使用的是大端,也就是说,我们要通过网络传输信息到远断,我们要当心了. 如果明确了传送信息的双方都是相同的存储方式那么还好办,如果传送双方的存储方式不相同或者不一定相同,我们就必须把原创 2009-11-18 14:07:00 · 1610 阅读 · 2 评论 -
UNIX 标准与实现中限制和选项
一.前言 我们在学习《UNIX环境高级编程》这本书,刚开始就会感到晦涩的就是第二章的内容----UNIX标准与实现。刚开始看确实比较难懂,往往我们会先放一放,后面的很多章节都提到了这方面的内容,等到时候在回顾,或许就会感到霍然开朗! 这本书,我也刚刚看完,感觉还是有很多地方没有掌握,所以在回顾一下,温故而知新嘛。 二.限制1.哪些限制 为了更原创 2009-11-02 19:16:00 · 1136 阅读 · 0 评论 -
linux信号量机制(semaphore)
下面一个例子说明了信号量的用法信号量往往用于两个进程或线程的同步,使得他们能够和谐的工作这个例子创建了四个线程,两个用于读取文件中的数据,两个用于把读取到的数据进行相应的处理一个把这些数据进行和运算,一个用于乘法运算#include #include #include #define MAX 100int buf[MAX][2];sem_t sem;int原创 2009-10-07 20:55:00 · 2373 阅读 · 0 评论 -
Linux多线程编程
简单的多线程程序 下面的例子是一个多线程的程序,在主程序中创建一个线程循环输出一段文字,主线程和子线程分时使用CPU复习要点:时间片的概念 多线程的概念 CPU调度#include #include void thread(void){ int i; for(i=0;i<100;i++) printf("This is in fun_thread原创 2009-10-07 20:29:00 · 492 阅读 · 0 评论 -
linux中关于IPC(一部分涉及读者写者问题)
sem的相关用法一个简单的例子:产生一个信号集,把信号集的id输出#include #include #include #include int main(){ key_t unique_key; int id; struct sembuf lock_it; //union semun options; int i; unique_key=f原创 2009-10-07 20:42:00 · 835 阅读 · 0 评论 -
Linux网络编程
gethostbyname函数的使用例子下面这个例子使用gethostbuname获得主机相关信息(ip,name等等)#include #include #include #include #include #include #include int main(int argc,char **argv){ struct hostent *h;原创 2009-10-07 20:52:00 · 640 阅读 · 0 评论 -
linux信号处理
进程之间的信号响应 关于进程之间的信号处理的函数有signal,kill,raisesignal函数用于设置该进程对于某种信号的处理方式kill函数用于进程主动发送某中信号给某个进程组或进程下面的程序父进程创建了一个子进程,两个进程双方交互发送信号,信号处理函数记录每个进程被通知的次数#include #include #include int ntimes原创 2009-10-07 20:35:00 · 495 阅读 · 0 评论 -
C/C+语言struct深层探索 (转)
C/C+语言struct深层探索 作者:宋宝华 出处:PConline 1. struct的巨大作用 面对一个人的大型C/C++程序时,只看其对struct的使用情况我们就可以对其编写者的编程经验进行评估。因为一个大型的C/C++程序,势必要涉及一些(甚至大量)进行数据组合的结构体,这些结构体可以将原本意原创 2009-10-16 17:38:00 · 489 阅读 · 0 评论 -
sinal函数原型的分析
void (*signal (int signo, void (*func)(int))) (int);乍一看,还以为定义了一个函数指针signal,但如果真是这样,signal后的参数列表又怎么解释?先来看看一些基础知识:1,定义函数指针:return_type (*func_pointer)(parameter_list)2,定义返回函数指针的函数:return_typ原创 2009-10-19 15:46:00 · 700 阅读 · 0 评论 -
IPC消息队列使用详细分析
虽然说是进程间通信中有关消息队列的一个比较详细的分析 同样的,共享内存,信号量和消息队列的公共部分知识也都同理 首先:使用XSI IPC需要首先了解标识符和键的概念 标识符是标识IPC对象的一个量,通常由一个int型变量表示,不过标识符只是IPC对象的内部名,如果要使的多个进程能够使用同一个IPC,需要得到一个外部名,这个外部名就是键--KEY,每个IPC对象都与一个键原创 2009-10-26 20:35:00 · 941 阅读 · 0 评论 -
用户ID,组ID 文件访问权限,文件与进程属性浅析
APUE中用户ID,组ID 文件访问权限,文件与进程属性浅析首先列出一图表 与每个进程相关的用户ID与组ID实际用户ID我们实际上是谁实际组ID有效用户ID用于文件访问权限检查有效组ID附加组ID保存的设置用户ID由exec函原创 2009-11-01 11:09:00 · 2947 阅读 · 3 评论 -
在fedora10下面打开telnet服务
我的fedora是通过liveCD进行安装,默认的telnet服务是没有开的.如果要启动并开通该项服务的话,可以通过如下方式进行:1).安装xinetd,telnet-server,通过yum可以直接安装;2).修改vi /etc/xinetd.d/telnet,将里面的disable由yes改为no.3).配置telnet服务自启动:chkconfig xinetd on4).原创 2010-03-08 21:17:00 · 614 阅读 · 0 评论