
linux 编程
admyww
编程
展开
-
linux C程序中获取shell脚本输出
1. 前言Unix界有一句名言:“一行shell脚本胜过万行C程序”,虽然这句话有些夸张,但不可否认的是,借助脚本确实能够极大的简化一些编程工作。比如实现一个ping程序来测试网络的连通性,实现ping函数需要写上200~300行代码,为什么不能直接调用系统的ping命令呢?通常在程序中通过system函数来调用shell命令。但是,system函数仅返回命令是否执行成功,而我转载 2008-09-17 14:00:00 · 272 阅读 · 0 评论 -
C Function - fgetc、fgets讀取整個檔案內容
C Function - fgetc、fgets讀取整個檔案內容 fgetc:傳回所讀到的字元,傳回值如果是 EOF,可能是有錯誤發生或是檔案終止(end-of-file),所以應該利用 feof 或是 ferror 來判定錯誤發生或是檔案終止。fgets: 傳回所讀到的字串,傳回值如果是 NULL,可能是有錯誤發生或是檔案終止(end-of-file),所以應該利用 feof 或原创 2008-11-24 20:09:00 · 794 阅读 · 0 评论 -
链表使用
LIST_HEAD(bob_list);struct bob_jobs { unsigned long id; struct list_head list;};#define this_job(p) list_entry(p, struct bob_jobs, list)static __init int chardev_init(void){ struct list_h原创 2008-12-01 17:51:00 · 224 阅读 · 0 评论 -
beginthreadex 例子
在msdn中这样的例子: 是关于_beginthreadex的 // crt_begthrdex.cpp // compile with: /MT #include #include #include unsigned Counter; unsigned __stdcall S原创 2008-12-03 16:42:00 · 567 阅读 · 0 评论 -
LINUX SOCK_RAW抓包程序
#include stdio.h>#include stdlib.h>#include sys/socket.h> #include netinet/in.h> #include arpa/inet.h> #include netinet/ip.h> #include string.h> #include netdb.h> #include netinet/tcp.h> #include neti转载 2009-03-01 20:01:00 · 1507 阅读 · 0 评论 -
USB启动盘OK
分区,格式化,设为活动分区 #fdisk /dev/sdb d(删除原来分区)->n(新建分区)->p->1->回车->回车->a(标记活动分区)->1->w #partprobe /dev/sdb 执行此命令可以不用重新启动就可以使用此分区。 #mke2fs -j /dev/sdb1 这一步不要了 推荐用ext2 //mkfs.ext3 /de原创 2009-03-26 12:08:00 · 690 阅读 · 0 评论 -
读写锁
读写锁,是自旋锁的一种衍生锁,为什么要衍生锁了,是因为自旋锁在多个执行单元在同时读写临界资源时都会被锁住,这样最多只能有一个执行单元拥有锁进而对资源进行操作,然而事实并非如此,在很多时候,同时读取临界资源是没有问题的,所以引入读写锁,他解决了读执行单元同时操作临界资源的问题,即允许读并发,但在写单元执行时最多允许一个进程访问临界资源。 定义和初始化: rwlock_t my_rwlock=转载 2009-04-01 18:47:00 · 465 阅读 · 0 评论 -
livecd
root=/dev/ram0 ramdisk_size=80000 Here is an example of procedures to make a bootable CD-ROM image. First, make a top directory for the bootable image, say, `iso': $ mkdir iso转载 2013-11-04 10:32:16 · 309 阅读 · 0 评论 -
skbbuff图解
一。skbuff的结构图如下二.Basic functions for sk_buff skb_headroom(), skb_tailroom() Prototype / Description int skb_headroom(const struct sk_buff *skb); bytes at buffer head int skb_tailroo2014-04-23 18:46:07 · 887 阅读 · 0 评论 -
gb2312 转 unicode 转 utf-8
#include #include int GBKConvertTableUnicode[][2] = {{0xb0a1, 0x554a},/*啊*/{0xb0a2, 0x963f},/*阿*/{0xb0a3, 0x57c3},/*埃*/{0xb0a4, 0x6328},/*挨*/{0xb0a5, 0x54ce},/*哎*/{0xb0a6, 0x5509},/*唉*/{0xb0a7, 0x54c0原创 2008-11-20 20:46:00 · 13523 阅读 · 0 评论 -
使用dev_queue_xmit发送定制报文
tcp: int cp_dev_xmit_tcp (char * eth, u_char * smac, u_char * dmac, u_char * pkt, int pkt_len, u_long sip, u_long dip, u_short sport, u_short dport, u_long se转载 2008-11-11 18:17:00 · 1887 阅读 · 0 评论 -
一个netfilter 例 子
#ifndef __KERNEL__#define __KERNEL__#endif#ifndef MODULE#define MODULE#endif#include #include #include #include #include #include #include #include #include原创 2008-10-18 02:05:00 · 556 阅读 · 0 评论 -
hello.ko simple
1. Install linux kernel 2.6.11 source code.rpm -Uvh kernel-smp-2.6.11-1.1369_FC4.i686.rpm2. Install kernel develpment package.rpm -Uvh kernel-smp-devel-2.6.11-1.1369_FC4.i686.rpm3. A simple kernel mod原创 2008-10-18 09:19:00 · 245 阅读 · 0 评论 -
syn flood攻击算法的c语言实现
#ifndef _KERNEL_ #define _KENNEL_ #endif #ifndef MODULE #define MODULE #endif #include #include #include #include #include #include原创 2008-10-18 09:44:00 · 609 阅读 · 0 评论 -
LINUX 透明防火
有时候,我们不想改动原本的网络环境,来经常网络安全管理,这时候我们就可以用到透明防火墙了,这时候我们就用到网桥的模块,当然它属于第二层的那一层了。 以下是本人实验环境: server -----------firewall--------------clientserver ip address: 192.168.1.100client ip address: 192.168.转载 2008-10-05 03:48:00 · 350 阅读 · 0 评论 -
IP Connection tracking
连接跟踪用来跟踪和记录连接状态,是netfilter的一部份,也是通过在hook点上注册相应的结构来工作的。 无论是发送,接收,还是转发的数据包,都要经过两个conntrack模块。 第一个conntrack点的优先级是最高的,所有数据包进入netfilter后都会首先被它处理,其作用是创建ip_conntrack结构。而最后一个conntrack的优先级最低,总是在数据包原创 2008-10-19 08:01:00 · 704 阅读 · 0 评论 -
sk_buff结构详解
struct sk_buff可能是linux网络代码中最重要的数据结构,它表示接收或发送数据包的包头信息,并包含很多成员变量供网络代码中的各子系统使用。 这个结构被网络的不同层(MAC或者其他二层链路协议,三层的IP,四层的TCP或UDP等)使用,并且其中的成员变量在结构从一层向另一层传递时改变。 L4向L3传递前会添加一个L4的头部,同样,L3向L2传递前,会添加一个L3的头部。添加原创 2008-10-26 12:10:00 · 468 阅读 · 0 评论 -
hlist 例子
/* * Copyright (C) 2007 Mathieu Desnoyers * * This program is free software; you can redistribute it and/or modify * it under the terms of the GNU General Public License as published by * th原创 2008-11-07 16:33:00 · 470 阅读 · 0 评论 -
100000以内的质数表
100000以内的质数表 最近在PKU上面做题,发现好多题目都用到了质数表,于是干脆把100000以内的质数表和生成质数的程序贴上来好了,大家也好抄,直接用~~~ 嘿嘿……Program:#include #define N 100000int sieve[N + 1];void main(){ for(int i = 2; i for(i = 2; i int p = 2;转载 2008-11-11 10:57:00 · 5996 阅读 · 5 评论