
Linux C编程
tang_fu
这个作者很懒,什么都没留下…
展开
-
Linux下如何实现秒以下精确定时与休眠
<br />Linux 中提供的休眠函数是sleep 和alarm ,但是他们仅仅提供以秒为单位的休眠,这中休眠有些进程显然太长了,那么怎样才能使进程以更小的时间分辨率休眠呢?<br /> <br /> 我知道的方法有2种,下面就做分别介绍。<br /><br /> 第一种方法是使用定时器,Linux提供的定时器函数是:<br /><br /> int setitimer(int which, const struct itimerval *value, struct原创 2011-01-27 12:11:00 · 357 阅读 · 0 评论 -
Introduction to Public-Key Cryptography
https://developer.mozilla.org/en/Introduction_to_Public-Key_Cryptographyhttps://developer.mozilla.org/en/Introduction_to_Public-Key_CryptographyIntroductionPublic-key cryptography an原创 2012-03-25 21:54:16 · 794 阅读 · 0 评论 -
用linux c写的验证系统用户密码的程序
http://dev.poetpalace.org/?p=363http://dev.poetpalace.org/?p=363通过环境变量USER和PASS指定用户密码,如果验证失败则sleep 2秒防止恶意攻击。程序需要owner为root来运行,并设置suid保证其他用户能运行。 这个简单的程序会有什么漏洞不??1234原创 2012-03-20 22:38:04 · 731 阅读 · 0 评论 -
auth2开放认证协议原理及案例分析
http://kejibo.com/oauth2/oauth2开放认证协议原理及案例分析Posted on 2011-08-03之前翻译过一篇 OAuth认证协议原理分析及使用方法,虽然 OAuth2还没有正式发布,但是国内外的OAuth2的采用情况几乎要完全替代掉OAuth1.1了。像淘宝、腾讯、人人网、百度开放平台就已经采用O原创 2012-07-08 18:31:31 · 4330 阅读 · 0 评论 -
深入理解linux内核list_head的实现
前言:在linux源代码中有个头文件为list.h.很多linux下的源代码都会使用这个头文件,它里面定义了一个结构,以及定义了和其相关的一组函数,这个结构是这样的: struct list_head{ struct list_head *next, *prev; }; 那么这个头文件又是有什么样的作用呢,这篇原创 2012-12-11 10:02:04 · 566 阅读 · 0 评论 -
系统调用execve的入口sys_execve()
[cpp] view plaincopy/* * sys_execve() executes a new program. */ long sys_execve(const char __user *name, //需要执行的文件的绝对路径(存于用户空间) const char __user *const __user *argv, //传入系统调用的参数原创 2013-01-11 17:21:07 · 583 阅读 · 0 评论 -
如何在LINUX下实现硬件的自动检测(上)
http://www.ibm.com/developerworks/cn/linux/hardware/auto-detecting/part1/index.html简介: 用过Linux的人都知道在Linux上硬件的配置过程是非常繁杂的。比如说,对于一块普通的pci网卡,您可能先要知道它的芯片类型,网卡生产厂商,然后猜出它对应的硬件驱动模块,然后再使用modprobe(insmo原创 2013-01-15 13:09:44 · 540 阅读 · 0 评论 -
如何在LINUX下实现硬件的自动检测(下)
简介: 本文是《如何在LINUX下实现硬件的自动检测》一文的下部分,作者将继续向我们讲述如何自动检测另外几种总线类型硬件设备。发布日期: 2001 年 7 月 01 日 级别: 初级 访问情况 : 4772 次浏览 评论: 1 (查看 | 添加评论 - 登录) 平均分 (6个评分)为本文评分USB设备的自动检测5.1 USB设备检测的一般过程U原创 2013-01-15 13:11:07 · 418 阅读 · 0 评论 -
采用libudev探测热拔插设备
http://www.signal11.us/oss/udev/libudev and Sysfs TutorialIntroduction and MotivationOn Unix and Unix-like systems, hardware devices are accessed throughspecial files (also calle原创 2013-01-16 08:49:03 · 1267 阅读 · 1 评论 -
netlink socket 编程之 why & how
http://bbs.chinaunix.net/thread-2029813-1-1.html两年前看到这篇入门文章,这几天看书遇到netlink socket,就又读了一遍,顺便翻译了一篇放上来,对原文中例子代码的一些小问题进行了修改,如果译文有不清楚或者错误的地方,敬请指出!!顺带附上了原文地址,大家可以参考E文。另外,word文档打印成PDF也作为附件提供下原创 2013-05-05 18:27:07 · 500 阅读 · 0 评论 -
2.6.24以上内核中netlink使用方法
http://blog.youkuaiyun.com/wangjingfei/article/details/52884602.6.24以上内核中netlink使用方法测试环境:2.6.28Netlink在2.6内核的不同版本中发生了很大变化,具体请参考(注意其中的版本号不一定确切):http://blog.youkuaiyun.com/sealyao/archive/2009/10/02/462原创 2013-05-05 18:35:57 · 427 阅读 · 0 评论 -
Netlink sockets examples
Netlink sockets examplesThis site contains examples for the Netlink and GeNetlink Sockets. We provide both kernel and user-space source code for reference. Specifically, the user-space examples ar原创 2013-05-05 18:28:57 · 710 阅读 · 0 评论 -
内核空间和用户空间的通讯接口
http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html#ss2.2http://people.ee.ethz.ch/~arkeller/linux/kernel_user_space_howto.html#ss2.2Kernel Space - User Space InterfacesAria原创 2013-05-30 13:50:03 · 723 阅读 · 0 评论 -
内核和用户空间共享内存的实现例程-proc和mmap
之所以想写这篇帖子,是有两个方面原因。其一是内核版有一个关于《内核可以从线性 地址直接计算物理地址,用来做什么呢?》的讨论,偶说计算出物理地址可以共享给用户空间读写。dreamice兄说能否说一下详细的应用。其二是alb* 版主提到wheelz曾经写过这样一个例程,拜读了一把,发现在传递物理地址和内存大小上,wheelz的例程还有些不够灵活。alb*版主提到可以通过 文件的方式实现动态的传递。原创 2013-09-16 23:26:29 · 390 阅读 · 0 评论 -
巧用backtrace系列函数,在不具备gdb环境的Linux系统上大致定位段错误位置
1: 段错误产生的原因简而言之,产生段错误就是访问了错误的内存段,一般是你没有权限,或者根本就不存在对应的物理内存,尤其常见的是访问0地址.一旦一个程序发生了越界访问,系统就采取内存保护措施,并给那个程序发送SIGSEGV信号,程序接到那个信号后就知道segmentation fault出现了。想对”段错误”有更详细的了解可以去阅读“Linux下的段错误产生的原因及调试方法” 这篇原创 2012-03-08 08:20:21 · 361 阅读 · 0 评论 -
boost 序列化成 xml文件
#include "stdafx.h"#include #include #include #include #include class TestClass{public: TestClass() { m_cMember1 = 'm'; m_strMemberName = "Hello.";原创 2012-02-20 13:45:41 · 408 阅读 · 0 评论 -
用C/C++制作php的扩展模块(详细版)
http://www.taocms.org/300.htmlhttp://www.taocms.org/300.html转载 2012-02-18 18:13:19 · 539 阅读 · 0 评论 -
Linux C编程---make命令的使用
摘要:在开发一个系统时,一般是将一个系统分成几个模块,这样做提高了系统的可维护性,但由于各个模块间不可避免存在关联,所以当一个模块改动后,其他模块也许会有所更新,当然对小系统来说,手工编译连接是没问题,但是如果是一个大系统,存在很多个模块,那么手工编译的方法就不适用了。为此,在Linux系统中,专门提供了一个make命令来自动维护目标文件,与手工编译和连接相比,make命令的优点在于他只更新修改过的文件(在Linux中,一个文件被创建或更新后有一个最后修改时间,make命令就是通过这个最原创 2011-01-27 12:18:00 · 359 阅读 · 0 评论 -
Linux 安装 Mysql
<br /> 一、引言<br /> 想使用Linux已经很长时间了,由于没有硬性任务一直也没有系统学习,近日由于工作需要必须使用Linux下的MySQL。本以为有Windows下使用SQLServer的经验,觉得在Linux下安装MySql应该是易如反掌的事,可在真正安装和使用MySQL时走了很多弯路,遇见很多问题,毕竟Linux和Windows本身就有很大区别。为了让和我一样的初学者在学习的过程中少走弯路,尽快入门,写了此文,希望对您有所帮助。本文的Linux环境是Red Hat 9原创 2011-01-27 12:34:00 · 230 阅读 · 0 评论 -
程序自删除实现 可用的SDK的
<br />我找自删除的东西 一找一大片,结果一个能直接用的也没有, 我用下面这个倒是可以<br /><br />如果有必要可以试一下.这个代码是我从 草草的SEU_PEER中拿出来的<br />BOOL SelfDelete()<br />...{<br /> TCHAR szModule [MAX_PATH],<br /> szComspec[MAX_PATH],<br /> szParams [MAX_PATH];<br /><br />原创 2011-01-27 12:49:00 · 349 阅读 · 0 评论 -
linux下检测网卡与网线连通状态
<br />Linux下检测网卡与网线连接状态,使用ioctl向socket发送SIOCETHTOOL命令字。<br /><br />link_stat.c<br />#include<stdio.h><br />#include<stdlib.h><br />#include<string.h><br /><br />#include<fcntl.h><br />#include<errno.h><br />#include<sys/ioctl.h><br原创 2011-01-27 14:28:00 · 638 阅读 · 0 评论 -
利用libcurl POST文件
<br />先看HTML代码:<html><br /> <head><br /> <meta http-equiv=content-type content="text/html;charset=gb2312"><br /> <title>File Upload</title><br /> </head><br /><body><br /> <form action="/?fileupload" method="post" id="upl原创 2011-01-27 14:29:00 · 2192 阅读 · 0 评论 -
daemon中的定时器
<br />项目中使用了定时器来提供一个类似于心跳的功能,在调试的过程中,总是出现,定时器不准的情况,实际上是在大量线程并发执行的时候,心跳得不到执行,使用了定时器,为什么会不准呢?<br /><br />忽然想起,守护进程会调用fork()来创建新的子进程,子进程对信号是继承的,但是对定时器却不是继承的。<br /><br />man 3 fork中的一段:<br /> * The set of signals pending for the child process shal原创 2011-01-27 14:38:00 · 426 阅读 · 0 评论 -
修改mysql字符编码成为UTF8
<br />安装后<br />/etc/init.d/mysql start (stop) 为启动和停止服务器<br />/etc/mysql/ 主要配置文件所在位置 my.cnf<br />/var/lib/mysql/ 放置的是数据库表文件夹,这里的mysql相当于windows下mysql的date文件夹<br />启动mysql后,以root登录mysql<br />isher@isher-ubuntu:~$ mysql -u root<br />>show variables原创 2011-01-27 12:31:00 · 273 阅读 · 0 评论 -
Linux上的C/C++编译器gcc/egcs详解
<br /> 一.运行 gcc/egcs<br /><br /> Linux 中最重要的软件开发工具是 GCC。GCC 是 GNU 的 C 和 C++ 编译器。实际上,GCC能够编译三种语言:C、C++和ObjectC(C语言的一种面向对象扩展)。利用 gcc 命令可同时编译并连接 C 和 C++ 源程序。 <br />#DEMO#: hello.c<br /><br /> 如果你有两个或少数几个C源文件,也可以方便地利用GCC编译、连接并生成可执行文件。例如,假设你有两个源文件 main.原创 2011-01-27 12:08:00 · 298 阅读 · 0 评论 -
利用php调用C语言hello.so库文件中的php扩展函数代码
某个功能被编译到so文件中,那么如何通过php来调用它?一个方法是写一个php模块(php extension),在php中调用该模块内的函数,再通过该模块来调用so中的函数。下面做一个简单的例子,使用的操作系统是Fedora Core 6。<br />某个功能被编译到so文件中,那么如何通过php来调用它?一个方法是写一个php模块(php extension),在php中调用该模块内的函数,再通过该模块来调用so中的函数。下面做一个简单的例子,使用的操作系统是Fedora Core 6。<br />首先原创 2011-04-14 09:06:00 · 2250 阅读 · 0 评论 -
XMl编程
http://jianlee.ylinux.org/Computer/C/libxml.html http://blogold.chinaunix.net/u/14063/showart_98851.html http://blog.youkuaiyun.com/alentam/archive/2008/03/25/2216253.aspx原创 2011-06-16 10:31:00 · 325 阅读 · 0 评论 -
Linux进程间通讯之消息队列
http://blog.youkuaiyun.com/liranke/article/details/56086861. 基本概念消息队列的最佳定义是:内核地址空间中的内部链表。消息可以顺序地发送到队列中,并以几种不同的方式从队列中获取。当然,每个消息队列都是由 IP原创 2011-09-26 10:13:07 · 631 阅读 · 0 评论 -
Using XML-RPC with C and C++
http://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-c.htmlhttp://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-c.htmlhttp://tldp.org/HOWTO/XML-RPC-HOWTO/xmlrpc-howto-c.html原创 2011-12-20 16:18:43 · 533 阅读 · 0 评论 -
进行web service开发详解
http://www.salesforce.com/us/developer/docs/api/index.htmhttp://msdn.microsoft.com/en-us/library/a86z84tw%28v=vs.80%29.aspx原创 2012-02-12 22:43:34 · 301 阅读 · 0 评论 -
Linux 指定程序运行加载的动态库路径
众所周知, Linux 动态库的默认搜索路径是 /lib 和 /usr/lib 。动态库被创建后,一般都复制到这两个目录中。当程序执行时需要某动态库, 并且该动态库还未加载到内存中,则系统会自动到这两个默认搜索路径中去查找相应的动态库文件,然后加载该文件到内存中,这样程序就可以使用该动态库中的函 数,以及该动态库的其它资源了。在 Linux 中,动态库的搜索路径除了默认的搜索路径外,还可以通过以下转载 2013-12-25 21:19:33 · 512 阅读 · 0 评论