摘要:
(转载)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 阅读全文
posted @ 2013-05-03 16:25
robotke1
阅读(299)
评论(0)
推荐(0)
摘要:
(转载)http://www.cnblogs.com/hjslovewcl/archive/2011/03/14/2314333.html有三种不同的文件锁,这三种都是“咨询性”的,也就是说它们依靠程序之间的合作,所以一个项目中的所有程序封锁政策的一致是非常重要的,当你的程序需要和第三方软件共享文件时应该格外地小心。有些程序利用诸如 FIlENAME.lock 的文件锁文件,然后简单地测试此类文件是否存在。这种方法显然不太好,因为当产生文件的进程被杀后,锁文件依然存在,这样文件也许会被永久锁住。UUCP 中把产生文件的进程号PID存入文件,但这样做仍然不保险,因为PID的利用是回收型的。这里是 阅读全文
posted @ 2013-05-03 13:40
robotke1
阅读(401)
评论(0)
推荐(0)
摘要:
(转载)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" 阅读全文
posted @ 2013-05-03 13:33
robotke1
阅读(603)
评论(0)
推荐(0)
摘要:
(转载)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 阅读全文
posted @ 2013-05-03 11:55
robotke1
阅读(197)
评论(0)
推荐(0)
摘要:
(转载)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函 阅读全文
posted @ 2013-05-03 11:44
robotke1
阅读(173)
评论(0)
推荐(0)
摘要:
(转载)http://www.cnblogs.com/yc_sunniwell/archive/2010/06/23/1763273.html一.什么是线程 在一个程序里的多个执行路线就叫做线程。更准确的定义是:线程是“一个进程内部的一个控制序列”。典型的unix进程可以看成只有一个控制线程:一个进程在同一时刻只做一件事情。有了多个控制线程以后,在程序设计时可以把进程设计成在同一时刻能够做不止一件事,每个线程处理各只独立的任务。二.线程的优点(1) 通过为每种事件类型的处理分配单独的线程,能够简化处理异步时间的代码。(2) 多个线程可以自动共享相同的存储地址空间和文件描述符。(3) 有些问题可 阅读全文
posted @ 2013-05-03 11:28
robotke1
阅读(202)
评论(0)
推荐(0)
摘要:
(转载)http://www.52rd.com/Blog/Detail_RD.Blog_renjwjx_17459.html线程终止方式一般来说,Posix的线程终止有两种情况:正常终止和非正常终止。线程主动调用pthread_exit()或者从线程函数中return都将使线程正常退出,这是可预见的退出方式;非正常终止是线程在其他线程的干预下,或者由于自身运行出错(比如访问非法地址)而退出,这种退出方式是不可预见的。线程终止时的清理不论是可预见的线程终止还是异常终止,都会存在资源释放的问题,在不考虑因运行出错而退出的前提下,如何保证线程终止时能顺利的释放掉自己所占用的资源,特别是锁资源,就是一 阅读全文
posted @ 2013-05-03 11:18
robotke1
阅读(301)
评论(0)
推荐(0)
摘要:
在线程创建时将其属性设为分离状态(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 阅读全文
posted @ 2013-05-03 11:05
robotke1
阅读(5327)
评论(0)
推荐(0)
摘要:
一、创建分离线程有两种方式创建分离线程:(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 < 阅读全文
posted @ 2013-05-03 10:48
robotke1
阅读(4661)
评论(0)
推荐(0)
摘要:
(转载)http://www.cnblogs.com/guoyilin/archive/2009/04/01/1426846.htmlMAC地址MAC地址是每一个连接到LAN的端口或设备所需要的规范化的数据链路层地址。MAC地址字长6B(注意也有2B的),由IEEE控制。在数据链路层,数据帧传输的寻址是依照网卡地址进行的。网卡地址可以采用局部地址或全局地址,以太网使用6B即48位的全局地址。对于共享型以太网,传输通过广播实现,各个网卡按照自己的物理地址接受属于自己的数据帧。而在交换式以太网,交换机通过逆向学习方式建立动态的MAC地址--端口映射表,根据该表进行数据帧的转发。当映射表中没有相应表 阅读全文
posted @ 2013-05-03 10:34
robotke1
阅读(709)
评论(0)
推荐(0)
摘要:
(转载)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 阅读全文
posted @ 2013-05-03 10:34
robotke1
阅读(802)
评论(0)
推荐(0)
摘要:
(转载)http://blog.csdn.net/jcwKyl/article/details/6324147这 是一项不太清晰而且没有多大意义的工作。一个原因是网络地址的设置非常灵活而且都是允许用户进行个性化设置的,比如一台计算机上可以有多块物理网卡或者虚 拟网卡,一个网卡上可以绑定多个IP地址,用户可以为网卡设置别名,可以重命名网卡,用户计算机所在网络拓扑结构未知,主机名设置是一个可选项并且同样可 以为一个计算机绑定多个主机名等,这些信息都会有影响。脱离了网络连接,单独的网络地址没有任何意义。编程中遇到必须获取计算机IP的场景,应该考虑将这 一选项放到配置文件中,由用户自己来选择。通过go 阅读全文
posted @ 2013-05-03 10:34
robotke1
阅读(373)
评论(0)
推荐(0)
摘要:
(转载)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; ... 阅读全文
posted @ 2013-05-03 00:54
robotke1
阅读(324)
评论(0)
推荐(0)
摘要:
(转载)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.. 阅读全文
posted @ 2013-05-03 00:50
robotke1
阅读(619)
评论(0)
推荐(0)
摘要:
(转载)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}; . 阅读全文
posted @ 2013-05-03 00:47
robotke1
阅读(226)
评论(0)
推荐(0)

浙公网安备 33010602011771号