引用:http://blog.chinaunix.net/u/12207/showart_2061214.html
关于2.6.31遇到的问题
错误提示1:
drivers/built-in.o(.init.text+0x3bad): In function `con_init':
include/trace/events/kmem.h:47: undefined reference to `.L1452'
解决:
vi /usr/src/linux/drivers/char/vt.c 找到static int __init con_init(void)函数中,以下语句
删除以下行(第2875行)
vc_cons[currcons].d = vc = kzalloc(sizeof(struct vc_data), GFP_NOWAIT);
在相同位置添加:
vc_cons[currcons].d = vc = alloc_bootmem(sizeof(struct vc_data));
同时记得加上头文件 #include <linux/bootmem.h>,否则会出现第2个错误。
错误提示2:
drivers/char/vt.c: In function `con_init':
drivers/char/vt.c:2875: error: implicit declaration of function `alloc_bootmem'
drivers/char/vt.c:2875: warning: assignment makes pointer from integer without a cast
原因:vt.c中引用了alloc_bootmem,但是找不到相关.h定义文件或没有在相关的头文件.h中定义
解决:
# vi /usr/src/linux/drivers/char/vt.c,添加以下这行:
#include <li ......
使用select函数可以以非阻塞的方式和多个socket通信。程序只是演示select函数的使用,功能非常简单,即使某个连接关闭以后也不会修改当前连接数,连接数达到最大值后会终止程序。
1. 程序使用了一个数组fd_A,通信开始后把需要通信的多个socket描述符都放入此数组。
2. 首先生成一个叫sock_fd的socket描述符,用于监听端口。
3. 将sock_fd和数组fd_A中不为0的描述符放入select将检查的集合fdsr。
4. 处理fdsr中可以接收数据的连接。如果是sock_fd,表明有新连接加入,将新加入连接的socket描述符放置到fd_A。
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#define MYPORT 1234 // the port users will be connecting to
#define BACKLOG 5 // how many pending&n ......
#include <sys/types.h>
#include <sys/socket.h>
#include <netdb.h>
#include <netinet/in.h>
#include <arpa/inet.h>
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <time.h>
#define NTP_SERVER "clock.via.net"
#define NTP_PORT 123
//
//rfc1305 defined from 1900 so also 2208988800 (1900 - 1970 ) seconds left
//
//timeval.tv_sec + JAN_1970 = timestamp.coarse
#define JAN_1970 0x83aa7e80
//timeval.tv_usec=>timestamp.fine
#define NTPFRAC(x) (4294 * (x) + ((1981 * (x))>>11))
//timeval.tv_usec<=timestamp.fine
#define USEC(x) (((x) >> 12) - 759 * ((((x) >> 10) + 32768) >> 16))
#define Data(i) ntohl(((unsigned int *)data)[i])
#define LI 0
#define VN 3
#define MODE 3
#define STRATUM 0
#define POLL 4
#define PREC -6
struct ntptime
{
unsigned int coarse;
unsigned int fine;
};
void send_packet(int fd)
{
unsigned int data[12];
st ......
linux下静态库嵌套使用
前提是你会在linux下调用静态库和动态库和Makfile编程(当然不会Makfile直接在终端命令也成)
本例是先由StringLen.h,StringLen.c生成librak.a
然后利用StringLen2.h,StringLen2.并调用librak.a生成librak2.a
最后利用StringLen3.h,StringLen3.c调用librak2.a 生成librak3.so
--------------------------------------------------------------------------------------
#StringLen.h:
#ifndef _STRINGLEN_H__
#define _STRINGLEN_H__
int Strlen(char *pStr);
#endif
#StringLen.c:
#include<stdio.h>
#include<assert.h>
#include "StringLen.h"
int Strlen(char *pStr)
{
unsigned long ulLength;
assert(NULL != pStr);
ulLength = 0;
while(*pStr++)
{
  ......
如何实现Linux与windows的文件传输?
2007年05月22日 星期二 20:54
一.概述
本文讲述了在Linux主机与windows主机之间如何互传文件的方法。因为有的时候,linux主机中的一些文件可能会在windows环境下用到。例如在linux主机中抓了一些图片,想把它们传到windows主机上以作为word文档的插图。又或者从Windows主机上网,下载了一些linux的软件包,想传到linux主机中安装。在这些情况下,都需要一种方法来进行两者之间的互通。
本文采用ftp方式来传送文件,软件采用Serv-U。在widows主机下安装Serv-U,使其成为ftp服务器,在linux主机下通过ftp命令来上传和下载文件。经过试验,可以很好的满足需求。
二.实验环境
软件环境:
A机:
操作系统:windows2000, IP: 10.18.34.115.
B机:
操作系统:Linux Red Hat 9.0, IP:10.18.34.251.
三.安装
1. Serv-U的安装
执行setup.exe, 全部选默认选项即可。
字串1
2. Serv-U的常规设置
在安装完成后,会弹出配置向导对话框,这里按要求填入相应信息,即可配置成功一个ftp服务器。这 ......
切换到root用户下,
service iptables status 用于查看是否有开启防方墙.
service iptables stop 用于关闭防火墙.
service iptables start 用于打开防火墙.
防火墙的开启有时会限制外部访问服务器上的端口失败. ......