1.点号进度显示code 1
#!/bin/sh
#输出"."进度条函数,兼容bsh、ksh、bash
#首先trap 1 2 3 15信号,重要
trap 'kill $BG_PID;echo;exit' 1 2 3 15
function dots
{
stty -echo >/dev/null 2>&1
while true
do
echo -e ".\c"
sleep 1
done
stty echo
echo
}
#---------------------------------------------
# 主程序开始
#---------------------------------------------
#首先使dots函数后台运行
dots &
BG_PID=$!
#开始程序主体,本例中执行休眠1 ......
感觉对这个有些晕,做了个实验,弄清楚了。
实验思路,用同一份代码编译同时生成动态和静态库,通过测试程序调用,看调用的是动态库还是静态库。
生成静态库代码:
/***********hellod.h*************/
#ifndef _HELLO_S_H
#define _HELLO_S_H
void prints(char *str);
#endif
/*hellod.c*/
#include "hellod.h"
#include <stdio.h>
void printd(char *str)
{
printf("print in static way:%s",str);
}
gcc -c -o hellod.o hellod.c
ar cqs libhellod.a hellod.o
生成的静态库为libhellod.a
生成动态库代码:
将上面hellod.c中的打印语句,打印输入:print in dynamic way。以示区别。
gcc -shared -o libhellod.so hellod.c
生成的动态库为libhellod.so。
测试代码main.c
#include "hellod.h"
int main(void)
{
char *text = "hello,world\n";
printd(text);
}
使用静态库:gcc -o hello main.c -static -L./ -lhellod
执行生成文件,打印:print in static way:hello,world
使用动态库: gcc -o hello main.c -L./ -lhell ......
http://en.wikipedia.org/wiki/Loop_device
In Unix-like operating systems, a loop device, vnd (vnode disk), or lofi (loopback file interface) is a pseudo-device that makes a file accessible as a block device.
所谓loop device指的就是拿文件来模拟块设备。
Albert Woodhull语:"The Linux loop device can be used to handle this - it makes a file look like a filesystem, and the file can be defined as a byte offset from the beginning of a primary partition"。
losetup 用 来 将 loop device 与 档 案 或 block device 联结 、 分 离 . 以 及 查 询 loop device 目 前 的 状 况 , 如 只给 定 loop_device 的 参 数 . 则 秀 出 loop device 目 前 的状 况 .
最近在看<> ( 见http://www.oldlinux.org/index_cn.html),对Linux下loopback设备的使用琢磨了一段时间。
记录如下:
一、imag 文件的生成
1. 可以通过bochs提供的bximage.exe生成。
2. 在FC3下通过命令dd if=/dev/zero of=test.img bs=512 count=524160 命令生成。
二、对生成的文件进行分区
1、可以将生成的image文件挂载在bochs下,当作从 ......
Linux IP设置
修改ip:
编辑文件/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0 //设备名称,不要修改
BOOTPROTO=static //不要修改
BROADCAST=10.10.22.255 //广播地址,一般为本网段的最后一个IP
IPADDR=10.10.22.145 //ip地址
NETMASK=255.255.255.0 //子网掩码
NETWORK=10.10.22.0 //网段地址
ONBOOT=yes //不要修改
TYPE=Ethernet //不要修改
注意: ifcfg-eth0是第一张网卡,ifcfg-eth1是第二张网卡,依次类推
增加ip:
可以重新编译一个文件,文件名为/etc/sysconfig/network-scripts/ifcfg-eth0:0
也可以直接在/etc/sysconfig/network-scripts/ifcfg-eth0中添加(但是设备eth0一定要有)
DEVICE=eth0:0 //设备名称,不要修改
BOOTPROTO=static //不要修改
BROADCAST=10.10.33.255 //广播地址,一般为本网段的最后一个IP
IPADDR=10.10.33.145 //ip地址
NETMASK=255.255.255.0 //子网掩码
NETWORK=10.10.33.0 //网段地址
ONBOOT=yes //不要修改
TYPE=Ethernet //不要修改
依次类推,如果再增加一个ip,则再增加如下配置:
DEVICE=eth0:1 //设备名称,不要修改
BOOTPROTO=static //不要修改
BROADCAST=10.10.44.255 //广播地址,一般 ......
装了一个VMWARE,其中运行的是LINUX-FC11。为了能够同Window Host共享文件,打算在Linux上装Samba服务。之前也试着用VMWARE Tools,不过没能成功。说我的FC11有问题。可能是编译环境或者版本的问题。于是用Samba。
用Samba的GUI界面设置了共享目录。可是Windows还是找不到我的共享目录。接着按网上的提示,打开了防火墙将Smb与Nmb作为了例外。,于是Windows可以访问到我的机器了。可是双击目录,提示“无法访问。您可能没有权限。”到网上google了一下,先生们建议对目录权限进行设置。于是用 "chmod 777, dir",可是还是不行。接着又确认了smb&nmb服务是运行的。又关闭了SELinux。还是不行。最后又认真读了一下相关的设置说明。终于在SAMBA的GUI界面中,找到了设用户那一页:
将Guest Account设为有效的名字即可。一切OK了。
接着试了一下用smbclient访问Windows的共享目录,
#smbclient //server/sharename -U name%passwd
也不错。比较好用。
参考:
1. http://www.reallylinux.com/docs/sambaserver.shtml
2. http://blog.csdn.net/dongliqiang2006/archive/2008/10/22/3126446.aspx ......
1. 基本概念
说到网络编程,不得不先提到OSI参考模型,其七层模型从下到上分别为
1.物理层(Physical Layer,PH)
2.数据链路层(Data Link Layer,DL)
3.网络层(Network Layer,N)
4.运输层(Transport Layer,T)
5.会话层(Session Layer,S)
6.表示层(Presentation Layer,P)
7.应用层(Application Layer,A)
现在最流行的网络协议无疑就是TCP/IP(Transmission Control Protocol/Internet Protocol)协议.
注:
l IP (Internet Protocol),网际协议;IP是TCP/IP的最底层,高层协议都要转化为IP包,IP包含了源地址和目的地址,路由决策也发生在IP层;
l ICMP (Internet Control Message Protocol),网际报文协议;它包括了数据包的错误、控制等相关信息。比如ping命令就是利用ICMP来测试一个网络的连接情况的工具;
l TCP (Transmission Control Protocol),传输控制协议。TCP运行在IP之上,是基于数据流连接和面向的协议,应用程序把数据要经过TCP/IP的分割成若干包,这样数据就 ......