int Daemon(char* szExecName = NULL)
{
int res = 0;
pid_t pc;
pc = fork();
if(pc < 0)
{
fprintf(stderr,"ERROR_Deamon()_fork(): failed!");
return -1;
}
else if(pc == 0) //sub process
{
}
else if(pc > 0) //parent process
{
fprintf(stderr,"parent process exit!\n");
sleep(2);
exit(0);
}
res = setsid();
if(res == -1)
{
fprintf(stderr,"ERROR_Deamon()_setsid(): errno = %d\n", errno);
return -1;
}
if(pc=fork())
exit(0);//是第一子进程,结束第一子进程
else if(pc< 0)
exit(1);//fork失败,退出
//是第二子进程,继续
//第二子进程不再是会话组长
// for maybe its path is not current path when run.
char szModulePath[MAX_PATH] = {0};
GetModuleFileName(szExecName, szModulePath, sizeof(szModulePath));
......
在Linux中安装软件经常会出现缺少文件,具体表现在编译时出现缺少头文件,而在用RPM包时出现依赖关系,给大家分享下我在使用中常出现的缺少文件解决方案
1、关于rpmbuild
在使用***.src.rpm时,需要用rpmbuild命令将其变为***.rpm格式,而rpmbuild的使用是需要先安装rpm-build….rpm这个包的。
2、编译失败提示:C++preprocessor "/lib/cpp" fails sanitg
这个错误是说缺少C++ compiler,只需要安装gcc-c++-***.rpm即可。
注:gcc=c compiler g++=c++ compiler
3、在装xine时提示没有X11工具包
安装xfree86-devel(RHA3)/xaw3d-devel(RHA4)
4、jpeg library not found
安装libjpeg...devel...rpm包
5、缺少curses.h
6、本人在装rp-pppoe时提示需要GUI
安装setools-gui...rpm
7、装完realplayer 10 后不能启动,提示:error while loading shared libraries:libstdc++.so.5......
安装compat-libstdc++...rpm
8、x11/xlib.h:no such file or diretory
安装xFree86开发包(xfree86-devel)
9、the GUI requires GTK devel packages(with were not found)
安装gtk+-devel-...rpm
......
源,在ubuntu下,它就相当于软件库,需要什么软件,只要记得正确的软件名并且确定在ubuntu下肯定有的软件,就可以使用命令来安装软件的(当然也可以用新立得来安装)命令是:sudo apt -get install 软件名 ,比如说QQ,你不能输入成 sudo apt-get install qq ,这个是不对了,因为QQ没有 linux版的,只能用代替来实现,比如代替QQ的是EVA,代替DW的是nvu等,可以输入,sudo apt-get install eva 或者sudo apt-get install nvu,但要确定源里有没有这个软件,也就是说软件库里有没有这个软件,如果没有,那就要添加源了(至于如何添加,留在后面说)。,这样输入完成的话,下面的时间就只有等待安装,完成后,代替QQ的EVA就可以使用了,虽然功能少点,但能聊就已经不错了。删除软件是:sudo apt-get remove 软件名,如删 EVA ,输入 sudo apt-get remove eva .
如何为Ubuntu Linux 添加软件源
看了上面的讲解,大家应该明白什么是Ubuntu Linux 软件源了,并且也知道如何安装和删除软件了。如果你要的软件没有,那就通过添加源来解决这个问题,也就是放入更多的软件存入软件库里。
因为在图形界面里,常常有权限的问题,这个是很麻烦的,我个人喜欢用命令的方式来添加的,我就是 ......
本文详细介绍了音频CD的基本知识,以及如何在Linux下编写实用的CD播放软件,内容涵盖音轨处理、播放控制和音量调节等诸多方面。
在目前的多媒体应用中,CD所承担的重要作用早已勿庸置疑,本文详细介绍了音频CD的基本知识,以及如何在Linux下编写实用的CD播放软件,内容涵盖音轨处理、播放控制和音量调节等诸多方面。
音频CD
CD
是目前正在被广泛使用的一种高效信息存储系统,它从最初起步到逐步成熟大约经历了十年左右的时间,期间涌现出来的行业标准和技术规范非常多,而影响最大的
当数由Philips和Sony公司共同推出的CD音频(CD-Audio)和CD数字音频(CD-DA)规范,这就是人们经常提到的红皮书,它被包含在
IEC 908标准中。
音频CD有足够的能力来提供高保真的声音,它的采样频率为44.1kHz,并且每个采样点都使用16
bit的量化级,这样CD播放器在输出音频数据时的速率将高达1.4
Mbps。除了最重要的音频数据之外,为了进行必要的纠错、同步或者调制,还需要在CD上存储其它一些额外数据,因此存储在光盘上的数据通常是原来的3倍
左右,也就是说信道比特率(从CD中读出数据的速率)可能会达到4.3128 Mbps。
精密的光学设计和高效的数据编码,
是CD具有很高存储密度的 ......
1 基于80x86的Linux分段机制
80386的两种工作模式:80386的工作模式包括实地址模式和虚地址模式(保护模式)。Linux主要工作在保护模式下。
在保护模式下,80386虚地址空间可达16K个段,每段大小可变,最大达4GB。逻辑地址到线性地址的转换由80386分段机制管理。段寄存器CS、DS、ES、SS、FS或GS各标识一个段。这些段寄存器作为段选择器,用来选择该段的描述符。
分段逻辑地址到线性地址转换图:
Linux对80386的分段机制使用得很有限,因为Linux的设计目标是支持绝大多数主流的CPU,而很多CPU使用的是RISC体系结构,并没有分段机制,所以2.6版内核只有在80x86结构下才使用分段,而且只是象征性地使用了一下:
所有Linux进程仅仅使用四种段来对指令和数据寻址。运行在用户态的进程使用所谓的用户代码段和用户数据段。类似地,运行在内核态的所有Linux进程都使用一对相同的段对指令和数据寻址:它们分别叫做内核代码段和内核数据段。下表显示了这四个重要段的段描述符字段的值:
段
Base
G
Limit
S
Type
DPL
D/B
P
用户代码段
0x00000000
1
0xfffff
1
10
3
1
1
用户数据段
0x00000000
......
linux目录架构
/ 根目录
/bin 常用的命令 binary file 的目錄
/boot 存放系统启动时必须读取的档案,包括核心 (kernel) 在内
/boot/grub/menu.lst GRUB设置
/boot/vmlinuz 内核
/boot/initrd 核心解壓縮所需 RAM Disk
/dev 系统周边设备
/etc 系统相关设定文件
/etc/DIR_COLORS 设定颜色
/etc/HOSTNAME 设定用户的节点名
/etc/NETWORKING 只有YES标明网络存在
/etc/host.conf 文件说明用户的系统如何查询节点名
/etc/hosts 设定用户自已的IP与名字的对应表
/etc/hosts.allow 设置允许使用inetd的机器使用
/etc/hosts.deny 设置不允许使用inetd的机器使用
......