linux_system_programming
文章平均质量分 62
cos_sin_tan
热爱移动开发,专注成长
展开
-
系统编程
书上说:系统编程中有三大基石:系统调用,C库和C编译器,每一个都值得好好的介绍一下我以前对系统编程的概念只是停留在系统调用的角度,这个,还是要注意下的原创 2011-09-15 10:36:47 · 456 阅读 · 0 评论 -
exec函数族的使用
转自:http://blog.csdn.net/21aspnet/article/details/1534094貌似这个博客还不错!调用shell脚本命令:execlp("sh","sh","filename",(char*)0);exec用被执行的程序完全替换调用它的程序的影像。fork创建一个新的进程就产生了一个新的PID,exec启动一转载 2012-07-19 01:38:06 · 595 阅读 · 0 评论 -
linux系统调用表
转自:http://www.ibm.com/developerworks/cn/linux/kernel/syscall/part1/appendix.html博主:一转过来效果咋那么差呢?还是回原来的链接看吧!很不错!很好!以下是Linux系统调用的一个列表,包含了大部分常用系统调用和由系统调用派生出的的函数。这可能是你在互联网上所能看到的唯一一篇中文注释的Linux系统调用列表转载 2012-07-20 22:34:44 · 637 阅读 · 0 评论 -
linux中时间的获取
time_t是一个在time.h中定义好的结构体。原形如下: struct tm { int tm_sec;//seconds 0-61 int tm_min;//minutes 1-59 int tm_hour;//hours 0-23 int tm_mday;//day of the month 1-31原创 2012-11-02 15:01:25 · 772 阅读 · 0 评论 -
exec族函数实例
转自:http://www.cnblogs.com/blankqdb/archive/2012/08/23/2652386.htmlfork()函数通过系统调用创建一个与原来进程(父进程)几乎完全相同的进程(子进程是父进程的副本,它将获得父进程数据空间、堆、栈等资源的副本。注意,子进程持有的是上述存储空间的“副本”,这意味着父子进程间不共享这些存储空间。linux将复制父进程的地址空间内容给子转载 2012-10-25 23:17:56 · 590 阅读 · 0 评论 -
应用管道实现父子进程之间的通信
应用管道实现父子进程之间的通信最近在学习Linux/Unix的IPC,而通过管道是其中的一种方式。管道的限制在与,它只能实现父子进程间的通信,通常我们通常会创建一个管道,然后fork出一个子进程,在父进程关掉读端(fd[0]),在子进程里关掉写端(fd[1]),然后在父进程的写端(fd[1])写入数据,在子进程中的读端(fd[0])读数据,这样就实现了父子进程间的通信。实现代码转载 2012-10-26 13:09:45 · 1956 阅读 · 0 评论 -
Linux/Unix下读取指定目录下的所有文件名
转自:http://blog.csdn.net/acb0y/article/details/6649403 Linux/Unix下读取指定目录下的所有文件名 调用系统函数opendir()和readdir来实现遍历Linux/Unix下的某个指定目录下的所有文件,并输出文件名。 实现代码如下:/* Author: ACb0y FileName: main.转载 2012-10-26 13:08:06 · 859 阅读 · 0 评论 -
wait
wait(NULL);原创 2012-10-26 13:25:04 · 508 阅读 · 0 评论 -
write函数不管用?
有次写个小代码,不复杂,但是老师cat file,nothing啊,纳闷纳闷~~~后来发现得打开---写入--关闭---才能 写入到物理盘里面。while(){ open; write; close();} not: openwhile(){ write();}close()原创 2012-10-26 14:37:42 · 1054 阅读 · 0 评论 -
linux下system函数
#includeint main(){ system("ls -al /etc/passwd /etc/shadow"); return 0;}简言之:system调用就相当于 fork+wait....system自己会进行fork工作,而父进程是很老实的在wait等待子进程的结束。转载 2012-10-26 13:05:37 · 520 阅读 · 0 评论 -
格式整齐的linuxC语言常用函数
转自:http://man.chinaunix.net/develop/c&c++/linux_c/default.htm转载 2012-10-26 13:41:09 · 521 阅读 · 0 评论 -
不解的线程和互斥
http://topic.csdn.net/u/20070705/19/cd743d75-8bf9-4bc9-94cb-9d479033bf00.html环境:ubuntu6.06+gcc4.0.3 关于pthread_mutex_trylock我是这样理解的:这个函数尝试锁住互斥体变量,如果互斥体没有上锁,那么加锁,否则返回一个消息,这样可以防止死锁的产生。 可是在我转载 2012-07-13 10:53:49 · 615 阅读 · 0 评论 -
daemon函数实现原理
转自:http://blog.csdn.net/yanook/article/details/7202311inux提供了daemon函数用于创建守护进程,实现原理如下:#include int daemon(int nochdir, int noclose);1. daemon()函数主要用于希望脱离控制台,以守护进程形式在后台运行的程序。2. 当nochdir为0时转载 2012-07-01 13:02:35 · 570 阅读 · 0 评论 -
API和ABI
API和ABIAPI定义了源代码接口,而ABI定义的则是在特定 的架构上两个或者多个软件模块之间的二进制接口。ABI必须保证二进制代码兼容,保证一段目标代码能够在任何具有相同ABI的系统上都正常运作,而不需要重新编译。原创 2011-09-15 10:38:26 · 796 阅读 · 0 评论 -
i_number inode denry联系
(1)【用户通过文件名对文件进行访问】但是事实上,对于文件本身并不与文件名称直接关联。相反,文件是通过inode(信息节点)来访问。 (2)【kernel对文件是通过inode来访问的,】即先找到inode编号即i-number,根据i-number找到inode。因为ino原创 2011-09-15 10:41:40 · 676 阅读 · 0 评论 -
i节点(inode)和文件描述符(file descriptor)的区别和联系
转载自:http://blog.csdn.net/wangchaoxjtuse/article/details/6036816inode 或i节点是指对文件的索引。如一个系统,所有文件是放在磁盘或flash上,就要编个目录来说明每个文件在什么地方,有什么属性,及大小等。就转载 2011-09-15 10:50:46 · 1058 阅读 · 0 评论 -
LINUX-VFS的supper bolck、inode、dentry和file关系简述
转自:http://blog.csdn.net/wangchaoxjtuse/article/details/6036874The common file model consists of the following object types:The sup转载 2011-09-15 11:15:40 · 1669 阅读 · 0 评论 -
软链接和硬链接
硬链接:1: 简言之就是一个物理文件对应多个不同的文件名。 |80 |xyz | |----- |----- | |80 | ab | |-----|----- |比如文件i-number=80的文件,可以有多个名字,如ab,xyz等等原创 2011-09-15 23:36:02 · 743 阅读 · 0 评论 -
使用truss、strace或ltrace诊断软件的"疑难杂症"
转自: http://hi.baidu.com/hcq11/blog/item/4b724f17e337770d4b90a735.html很不错的文章哦,值得研究转载 2011-11-13 15:24:45 · 622 阅读 · 0 评论 -
最简单的一些linux命令的基本的实现
//特别简单的ls命令的实现,没有对参数等的功能进行判断,等以后进行完善#include#include#include#includeint main(int argc ,char *argv[]){DIR *dir1;struct dirent *dir2; //指针格式if(!dir1=opendir(argv[1])原创 2012-01-11 16:30:27 · 451 阅读 · 0 评论 -
当年所谓不解决的动态链表问题,再次回顾,呵呵
#include#include#define NULL 0#define LEN sizeof(struct student)typedef struct student{long num;float score;struct student *next;}student;int n;int main(){student *h转载 2012-01-11 20:51:19 · 486 阅读 · 0 评论 -
fork,wait,exec使用
#include#include#include#include#includeint main(){pid_t pid;pid = fork();if(pid==0){execl("/bin/ls","ls",".",NULL);perror("execl");}if(pid > 0){printf("I am father");原创 2012-01-12 08:51:19 · 556 阅读 · 0 评论 -
时区设置函数tzset()
转自:http://hi.baidu.com/peruke/item/e77273c841150413505058d7#incude void tzset(void);设置时间环境变量。说明tzset()函数使用环境变量TZ的当前设置把值赋给三个全局变量:daylight,timezone和tzname。这些变量由ftime和localtime函数使用校正格林威治(UT转载 2012-07-05 21:22:30 · 2302 阅读 · 0 评论 -
perror
转自:http://baike.baidu.com/view/1928446.htm头文件 #includestdio.h> #include注意 不可以掉了#include这个头文件,perror是包含在这个文件里的编辑本段perror表头文件完善版定义函数 void perror(const char *s); perror ("open_por转载 2012-12-10 18:57:05 · 543 阅读 · 0 评论