随笔分类 - Linux
摘要:(转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/1101 linux中刻录iso的方法(hutuworm)方法一:使用xcdroast,选择制作光碟,选择ISO文件,刻录!参见http://www.xcdroast.org/xcdr098/faq-a15.html#17方法二:找刻录机的命令:cdrecord --scanbus输出结果为:0,0,0 0) 'ATAPI ' 'CD-R/RW 8X4X32 ' '5.EZ' Removable CD-ROM刻录的命令
阅读全文
摘要:(转载)http://bjsfly.blog.163.com/blog/static/161276642007845228371/0001 修改主机名(bjchenxu)vi /etc/sysconfig/network,修改HOSTNAME一行为"HOSTNAME=主机名"(没有这行?那就添加这一行吧),然后运行命令 " hostname 主机名"。一般还要修改/etc/hosts文件中的主机名。这样,无论你是否重启,主机名都修改成功。0002 Red Hat Linux启动到文字界面(不启动xwindow)(bjchenxu)vi /etc/init
阅读全文
摘要:(转载)http://www.cnblogs.com/cocowool/archive/2012/05/22/2513027.html进程间通信概述进程间通信有如下的目的:1、数据传输,一个进程需要将它的数据发送给另一个进程,发送的数据量在一个字节到几M之间;2、共享数据,多个进程想要操作共享数据,一个进程对数据的修改,其他进程应该立刻看到;3、通知事件,一个进程需要向另一个或一组进程发送消息,通知它们发生了某件事情;4、资源共享,多个进程之间共享同样的资源。为了做到这一点,需要内核提供锁和同步机制;5、进程控制,有些进程希望完全控制另一个进程的执行(如Debug进程),此时控制进程希望能够拦
阅读全文
摘要:(转载)http://www.cppblog.com/prayer/archive/2009/05/05/81955.htmlsystem(执行shell 命令)相关函数 fork,execve,waitpid,popen表头文件 #i nclude<stdlib.h>定义函数 int system(const char * string);函数说明 system()会调用fork()产生子进程,由子进程来调用/bin/sh-c string来执行参数string字符串所代表的命令,此命>令执行完后随即返回原调用的进程。在调用system()期间SIGCHLD 信号会被暂时搁
阅读全文
摘要:(转载)http://www.cnblogs.com/hjslovewcl/archive/2011/06/29/2314321.html先写一个被调用的函数#include <stdio.h>int main(int argc, char* argv[]){ return 10;}[root@robot ~]# gcc test_return.c -o test_return[root@robot ~]# ./test_return[root@robot ~]#再写一个调用system的程序#include <stdio.h>#include <stdlib.h
阅读全文
摘要:(转载)http://www.cnblogs.com/hjslovewcl/archive/2011/03/14/2314333.html有三种不同的文件锁,这三种都是“咨询性”的,也就是说它们依靠程序之间的合作,所以一个项目中的所有程序封锁政策的一致是非常重要的,当你的程序需要和第三方软件共享文件时应该格外地小心。有些程序利用诸如 FIlENAME.lock 的文件锁文件,然后简单地测试此类文件是否存在。这种方法显然不太好,因为当产生文件的进程被杀后,锁文件依然存在,这样文件也许会被永久锁住。UUCP 中把产生文件的进程号PID存入文件,但这样做仍然不保险,因为PID的利用是回收型的。这里是
阅读全文
摘要:(转载)http://www.blogjava.net/qileilove/archive/2012/05/23/378903.html Linux文件锁的示例 为了理解文件锁是如何工作的,我们建立程序文件file_lock.c:#include <stdio.h> #include <fcntl.h>intmain(intargc,char**argv) {if(argc > 1) {intfd = open(argv[1], O_WRONLY);if(fd == -1) {printf("Unable to open the file\n"
阅读全文
摘要:(转载)http://www.cnblogs.com/yc_sunniwell/archive/2010/06/24/1764204.html一.线程属性线程具有属性,用pthread_attr_t表示,在对该结构进行处理之前必须进行初始化,在使用后需要对其去除初始化。我们用pthread_attr_init函数对其初始化,用pthread_attr_destroy对其去除初始化。1.名称:pthread_attr_init/pthread_attr_destroy 功能:对线程属性初始化/去除初始化 头文件:#include <pthread.h> 函数原形:int pthrea
阅读全文
摘要:(转载)http://www.cnblogs.com/yc_sunniwell/archive/2010/06/23/1763310.html6.名称:pthread_detach 功能:使线程进入分离状态。 头文件:#include <pthread.h> 函数原形:int pthread_detach(pthread_t tid); 参数: 返回值:若成功则返回0,否则返回错误编号。 在默认情况下,线程的终止状态会保存到对该线程调用pthread_join,如果线程已经处于分离状态,线程的底层存储资源可以在线程终止时立即被收回。当线程被分离时,并不能用pthread_join函
阅读全文
摘要:(转载)http://www.cnblogs.com/yc_sunniwell/archive/2010/06/23/1763273.html一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代码。(2) 多个线程可以自动共享相同的存储地址空间和文件描述符。(3) 有些问题可
阅读全文
摘要:(转载)http://www.52rd.com/Blog/Detail_RD.Blog_renjwjx_17459.html线程终止方式一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。线程终止时的清理不论是可预见的线程终止还是异常终止,都会存在资源释放的问题,在不考虑因运行出错而退出的前提下,如何保证线程终止时能顺利的释放掉自己所占用的资源,特别是锁资源,就是一
阅读全文
摘要:在线程创建时将其属性设为分离状态(detached),也可在线程创建后将其属性设为分离的(detached)。这里使用在创建时指定线程为PTHREAD_CREATE_DETACHED属性。一、实例#include <dirent.h>#include <pthread.h>#include <errno.h>#include <signal.h>#include <time.h>void* thread1(void *arg){ while (1) { usleep(100 * 1000); printf("thread1
阅读全文
摘要:一、创建分离线程有两种方式创建分离线程:(1)在线程创建时将其属性设为分离状态(detached);(2)在线程创建后将其属性设为分离的(detached)。二、分离线程的作用由系统来回收线程所占用资源。三、实例#include <stdlib.h>#include <string.h>#include <unistd.h>#include <semaphore.h>#include <sys/types.h>#include <dirent.h>#include <pthread.h>#include <
阅读全文
摘要:(转载)http://www.cnblogs.com/guoyilin/archive/2009/04/01/1426846.htmlMAC地址MAC地址是每一个连接到LAN的端口或设备所需要的规范化的数据链路层地址。MAC地址字长6B(注意也有2B的),由IEEE控制。在数据链路层,数据帧传输的寻址是依照网卡地址进行的。网卡地址可以采用局部地址或全局地址,以太网使用6B即48位的全局地址。对于共享型以太网,传输通过广播实现,各个网卡按照自己的物理地址接受属于自己的数据帧。而在交换式以太网,交换机通过逆向学习方式建立动态的MAC地址--端口映射表,根据该表进行数据帧的转发。当映射表中没有相应表
阅读全文
摘要:(转载)http://blog.sina.com.cn/s/blog_4065d7370100075l.html具体代码如下:#include <stdio.h>#include <stdlib.h>#include <sys pes.h>#include <sys/socket.h>#include <sys/ioctl.h>#include <netinet/in.h>#include <net/if.h>#include <net/if_arp.h>#include <arpa/inet
阅读全文
摘要:(转载)http://blog.csdn.net/jcwKyl/article/details/6324147这 是一项不太清晰而且没有多大意义的工作。一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚 拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡,用户计算机所在网络拓扑结构未知,主机名设置是一个可选项并且同样可 以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇到必须获取计算机IP的场景,应该考虑将这 一选项放到配置文件中,由用户自己来选择。通过go
阅读全文
摘要:(转载)http://hi.baidu.com/zengzhaonong/item/87d9d296d0824cbb82d29570 #include <netdb.h> #include <sys/socket.h> struct hostent *gethostbyname(const char *name); 这个函数的传入值是域名或者主机名,例如"www.google.cn"等等。传出值,是一个hostent的结构。如果函数调用失败,将返回NULL。 struct hostent { char *h_name; ...
阅读全文
摘要:(转载)http://blog.csdn.net/litingli/article/details/5461535在做linux下面的网络编程时写了如下一段程序//(省去N行……) char *source,*dest; struct in_addr saddr; struct in_addr daddr; saddr.s_addr = (in_addr_t)cmd.source.v_uint; //cmd.source.v_uint装载了由字符串通过inet_aton()转化成的源IP的网络字节,这里无错,不必深究:) daddr.s_addr = (in_addr_t)cmd.dest..
阅读全文
摘要:(转载)http://blog.chinaunix.net/uid-1771330-id-2863811.html今天在写代码时遇到一个问题并于在一个函数传递参数时连续调用inet_ntoa时出现的,下面是问题的模拟代码:int main(){ char* pIp1; char* pIp2; char ip_addr1[] = "192.168.1.20"; char ip_addr2[] = "192.168.1.40"; struct in_addr addr1; struct in_addr addr2; char ip1[16] = {0}; .
阅读全文
摘要:(转载)http://roclinux.cn/?p=1160知识背景:210.25.132.181属于IP地址的ASCII表示法,也就是字符串形式。英语叫做IPv4 numbers-and-dots notation。如果把210.25.132.181转换为整数形式,是3524887733,这个就是整数形式的IP地址。英语叫做binary data。(其实binary是二进制的意思)问题所在:如何在字符串形式的IP和整数形式的IP之间转换呢?问题解决思路:有三个函数可以解决这个问题,当然不止这三个函数,只是这三个函数最常用且最易混淆。隆重推出他们:inet_network(), inet_ad
阅读全文