随笔分类 - Linux
摘要:#include <stdio.h>#include <stdlib.h>#include <unistd.h>int main(int argc, char *argv[]){ FILE *fp; char ch; fp=fopen("test","r");//fopen产生一个文件指针 while((ch=fgetc(fp))!=EOF) //以文件流方式读取文件,以EOF结尾 { sleep(1); putc(ch,stdout); fflush(stdout);//刷新缓冲区,让输出显示 } fclose(fp
阅读全文
摘要:#include <stdio.h>#include <time.h>int main(void){ time_t t; time(&t); printf("Today's date and time: %s", ctime(&t)); return 0;}time()函数作用:取得当前时间头文件:#include <time.h>函数原型:time_t time(time_t *t);函数说明:此函数会返回从分元1970年1月1日的UTC时间从0时0分0秒算起到现在所经过的秒数.如果t是一个非空指针的话,此函数会
阅读全文
摘要://1:定义一个utmp结构体。保存读到的数据。//2:只读方式打开 /var/run/utmp 文件。//3:循环调用(read) 读取数据,直到读完位置。 //4:每次读完数据后判断是普通用户的话, //打印登陆用户名,终端号,登陆时间//5:注意:打印时间的时候用ctime去转换。//if(A.ut_type==USER_PROCESS) #include <stdio.h>#include <unistd.h>#include <utmp.h>#include <fcntl.h>#include <time.h>int mai
阅读全文
摘要:Linux是一种很受欢迎的操作系统,它与UNIX系统兼容,开放源代码。它原本被设计为桌面系统,现在广泛应用于服务器领域。而更大的影响在于它正逐渐的应用于嵌入式设备。uClinux正是在这种氛围下产生的。在uClinux这个英文单词中u表示Micro,小的意思,C表示Control,控制的意思,所以uClinux就是Micro-Control-Linux,字面上的理解就是"针对微控制领域而设计的Linux系统"。 uCLinux即“微控制器领域中的Linux系统”。 uClinux从Linux 2.0/2.4内核派生而来,沿袭了Linux的绝大部分特性。它是专门针对没有MMU
阅读全文
摘要:转自:http://www.cnblogs.com/amboyna/archive/2008/03/08/1096024.html一般来说,配置交叉编译工具链的时候需要指定编译工具的路径,此时就需要设置环境变量。例如我的mips-linux-gcc编译器在“/opt/au1200_rm/build_tools/bin”目录下,build_tools就是我的编译工具,则有如下三种方法来设置环境变量:1、直接用export命令:#export PATH=$PATH:/opt/au1200_rm/build_tools/bin查看是否已经设好,可用命令export查看:[root@localhost
阅读全文
摘要:转自:http://bbs.chinaunix.net/viewthread.php?tid=1602387关键字: FreeBSD 安装 安装方法 图文教程 图形 图形界面安装 安装教程为了不被一直 BS, 本人特将截图转移了一份.欢迎指正.欢迎使用 FreeBSD!BSD 的手册相当丰富,细致,极大的扫清了我们在使用 BSD时的障碍.然而,实践往往与理论有距离,或许在阅读了一大堆资料后,开始着手安装系统,克服"重重困难"之后,终于安装成功,在欢庆的同时发现,居然没有安装 gcc, 常用命令的 man 一个都查不出来.天哪,这样一个绝对纯净的裸机让我如何是从呢?于是笔者根
阅读全文
摘要:/* ************************************************************************ * Filename: exit.c * Description: * Version: 1.0 * Created: 2011年05月11日 17时18分52秒 * Revision: none * Compiler: gcc * Author: wenhao (wh), hnrain1004@gmail.com * Company: sunplusapp * *****************************************
阅读全文
摘要:知道子进程自父进程继承什么或未继承什么将有助于我们。下面这个名单会因为不同Unix的实现而发生变化,所以或许准确性有了水份。请注意子进程得到的是这些东西的 *拷贝*,不是它们本身。 由子进程自父进程继承到: 进程的资格(真实(real)/有效(effective)/已保存(saved) 用户号(UIDs)和组号(GIDs))环境(environment)堆栈内存打开文件的描述符(注意对应的文件的位置由父子进程共享, 这会引起含糊情况)执行时关闭(close-on-exec) 标志 (译者注:close-on-exec标志可通过fnctl()对文件描 述符设置,POSIX.1要求所有目录流都必须
阅读全文
摘要:/* ************************************************************************ * Filename: stat2.c * Description: * Version: 1.0 * Created: 2011年05月11日 16时03分23秒 * Revision: none * Compiler: gcc * Author: wenhao (wh), hnrain1004@gmail.com * Company: sunplusapp * ****************************************
阅读全文
摘要:转自:http://zyxhome.org/wp/cc-prog-lang/c-stdlib-setlocale-usage-note/ [在此向原文作者说声谢谢!若有读者看到文章转载时请写该转载地址,不要写我的BLOG地址。尊重他人的劳动成果 ^_^ ]C 和 C++ 的标准库分别有自己的 locale 操作方法,C 标准库的 locale 设定函数是 setlocale(),而 C++ 标准库有 locale 类和流对象的 imbue() 方法。这篇是我自己的 setlocale() 使用总结。Linux的glibc中的setlocale()具体参考:man 3 setlocale头文件与
阅读全文
摘要:如果知道一个用户的用户ID或者登录名,可以通过getpwuid或getpwnam函数获得用户的登录信息.函数原型为: #include <pwd.h> #include <sys/types.h> struct passwd *getpwnam(const char *name); struct passwd *getpwuid(uid_t uid); The passwd structure is defined in <pwd.h> as follows: struct passwd { char *pw_name; /* user name */ ch
阅读全文
摘要:【uname系统调用】功能描述:获取当前内核名称和其它信息。用法:#include <sys/utsname.h>extern int uname (struct utsname *__name) __THROW;参数:__name:指向存放系统信息的缓冲区,原型如下struct utsname { char sysname[_UTSNAME_SYSNAME_LENGTH];//当前操作系统名 char nodename[_UTSNAME_NODENAME_LENGTH];//网络上的名称 char release[_UTSNAME_RELEASE_LENGTH];//当前发布级别
阅读全文
摘要:转自:http://dragon.cnblogs.com/archive/2006/05/09/394923.html前言:本文是前一片文章《深入浅出之正则表达式(一)》的续篇,在本文中讲述了正则表达式中的组与向后引用,先前向后查看,条件测试,单词边界,选择符等表达式及例子,并分析了正则引擎在执行匹配时的内部机理。本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版权归原作者所有,欢迎转载。但是为了尊重原作者和译者的劳动,请注明出处!谢谢!9.单词边界元字符<<\b>>也是一种对位置进行匹配的“锚”。这种匹配是0长度匹配。有4种位置被认为是“单词边界
阅读全文
摘要:转自:http://dragon.cnblogs.com/archive/2006/05/08/394078.html前言:半年前我对正则表达式产生了兴趣,在网上查找过不少资料,看过不少的教程,最后在使用一个正则表达式工具RegexBuddy时发现他的教程写的非常好,可以说是我目前见过最好的正则表达式教程。于是一直想把他翻译过来。这个愿望直到这个五一长假才得以实现,结果就有了这篇文章。关于本文的名字,使用“深入浅出”似乎已经太俗。但是通读原文以后,觉得只有用“深入浅出”才能准确的表达出该教程给我的感受,所以也就不能免俗了。本文是Jan Goyvaerts为RegexBuddy写的教程的译文,版
阅读全文
摘要:第一步:我们要确认,LINUX下是不是安装了TFTP-SERVER.在LINUX下输入:rpm -q tftp-server如出现如下回复:tftp-server-0.39-2 则表示tftp-server已安装.第二步:修改TFTP启动脚本:方法一:需要修改ftptpd的启动脚本vi /etc/xinetd.d/tftp加上disable =no 此时即可启动tfpt服务方法二:直接输入:/sbin/chkconfig tftp on此命令也是在启动脚本中加上disable=no脚本修改后的效果如下:第三步:启动TFTP服务service xinetd restart这样我们的服务就启动OK
阅读全文
摘要:当我们用Xshell登录进入linux后,在普通模式下,对输入进行删除等操作没有问题.而在运行中,按delete,backspace键时会产生^H等乱码问题.这是因为编码不匹配的问题.解决方法:选择File------>Propertise弹出的对话框中,选择Terminal下的Keyboard.如下设置:设置完以后,重新开一个链接.让配置生效.就OK了.
阅读全文
摘要:首先转一段关于回车和换行的历史。回车和换行关于“回车”(carriage return)和“换行”(line feed)这两个概念的来历和区别。在计算机还没有出现之前,有一种叫做电传打字机(Teletype Model 33)的玩意,每秒钟可以打10个字符。但是它有一个问题,就是打完一行换行的时候,要用去0.2秒,正好可以打两个字符。要是在这0.2秒里面,又有新的字符传过来,那么这个字符将丢失。于是,研制人员想了个办法解决这个问题,就是在每行后面加两个表示结束的字符。一个叫做“回车”,告诉打字机把打印头定位在左边界;另一个叫做“换行”,告诉打字机把纸向下移一行。这就是“换行”和“回车”的来历,
阅读全文
摘要:转自:http://blog.csdn.net/unbutun/archive/2009/05/13/4175209.aspx条件变量 使用互斥锁来实现线程间数据的共享和通信,互斥锁一个明显的缺点是它只有两种状态:锁定和非锁定。而条件变量通过允许线程阻塞和等待另一个线程发送信号的方法弥补了互斥锁的不足,它常和互斥锁一起使用。使用时,条件变量被用来阻塞一个线程,当条件不满足时,线程往往解开相应的互斥锁并等待条件发生变化。一旦其它的某个线程改变了条件变量,它将通知相应的条件变量唤醒一个或多个正被此条件变量阻塞的线程。这些线程将重新锁定互斥锁并重新测试条件是否满足。一般说来,条件变量被用来进行线承间
阅读全文
摘要:转自:http://blog.csdn.net/future_fighter/archive/2009/02/13/3883415.aspx继续昨天的线程同步,条件变量(Condition Variables)是用于线程间,通信共享数据状态改变的机制。简介条件变量的创建和销毁等待条件变量唤醒等待条件变量的线程简介当线程互斥地访问一些共享的状态时,往往会有些线程需要等到这些状态改变后才应该继续执行。如:有一个共享的队列,一个线程往队列里面插入数据,另一个线程从队列中取数据,当队列为空的时候,后者应该等待队列里面有值才能取数据。而共享数据(队列)应该用mutex来保护,为了检查共享数据的状态(队列
阅读全文
摘要:转自:http://blog.csdn.net/hanchaoman/archive/2009/11/12/4798784.aspx1. 相关函数 #include <pthread.h> pthread_cond_t cond = PTHREAD_COND_INITIALIZER; int pthread_cond_init(pthread_cond_t *cond, pthread_condattr_t *cond_attr); int pthread_cond_signal(pthread_cond_t *cond); int pthread_cond_broadcast(p
阅读全文

浙公网安备 33010602011771号