随笔分类 -  系统编程

数组中最大和的子数组
摘要:只需要输出最大子数组和结果 [08:27:34] gcc sonarrysum.c [08:27:37] ./a.out 18 [08:27:39] cat sonarrysum.c #include<stdio.h> void max(int a[],int len) { int i,max=0, 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(199) 评论(0) 推荐(0)

排序算法——快速排序
摘要:原理:文字说不清楚,直接在代码解释了 [08:32:22] gcc quicksort.c [08:32:24] ./a.out 1 2 3 4 5 6 7 8 9 10 [08:32:26] cat quicksort.c #include<stdio.h> void swap(int *a,in 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(236) 评论(0) 推荐(0)

排序算法——堆排序
摘要:有一点需要注意,那就是,左孩子的下标是2×s+1,右孩子下标是2×s,注意是下标,例如数组1到10,那么下标为13579的全部是左孩子(构造树的时候1第一个数是根,第二个数是左孩子,第三个是右孩子,然后第四个数则是第一个左孩子的左孩子,以此类推)。最大堆:每个父节点都比子节点大;最小堆:每个父节点都 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(142) 评论(0) 推荐(0)

算法与数据结构——选择,插入,希尔排序
摘要:首先来看比较简单的选择排序(Selection sort),插入排序(Insertion sort),然后在分析插入排序的特征和缺点的基础上,介绍在插入排序基础上改进的希尔排序(Shell sort)。 一 选择排序 原理:现在假设我们给一个队伍排序。首先我们找到那个最矮的叫他站第一位,再找出第二矮 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(146) 评论(0) 推荐(0)

输出内容时后面显示乱码
摘要:使用文件操作函数时,我遇到过几次,打印内容时内容没有错误,可是末尾多显示了几个乱码,其实主要是因为字符串末尾没有赋字符串结束符号\0 [root@bogon mycode]# cat a.c #include<stdio.h> #include<fcntl.h> #include<unistd.h> 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(211) 评论(0) 推荐(0)

readv与writev
摘要:[root@bogon mycode]# cat writev.c #include<stdio.h> #include<string.h> #include<unistd.h> #include<sys/uio.h> int main() { char *str1="linux\n"; char 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(354) 评论(0) 推荐(0)

使用C语言简单模拟Linux的cat程序
摘要:先给出源码 //fileio.c #include<stdio.h> #include<stdlib.h> #include<fcntl.h> void print(int fd) { int i,len; char buf[10]; len=read(fd,buf,10);//len是成功读入的字 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(317) 评论(0) 推荐(0)

能力
摘要:给文件赋予能力,下面以date为例[bp@bogon ~]$ whereis -b date //如果去掉-b会显示额外的其他路径date: /usr/bin/date[bp@bogon ~]$ cp /usr/bin/date . //复制date命令到当前文件夹[bp@bogo... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(241) 评论(0) 推荐(0)

进程资源
摘要:#include//返回调用进程或其子进程用掉的各类系统资源的统计信息//who参数可取下列值RUSAGE_SELF 返回调用进程相关的信息RUSAGE_CHILDREN 返回调用进程的所有被终止和处于等待状态的子进程相关的信息RUSAGE_THREAD 返回调用线程相关的信息i... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(158) 评论(0) 推荐(0)

会话,进程组,作业控制
摘要:#include//获取一个进程的进程组pid_t getpgrp(void);//将进程id为pid的进程的进程组id修改为pgid//如果将pid设置为0,那么调用进程的进程组id就会改变,如果将pgid的设为0,那么id为pid的进程的进程组id会被设置为pid的值int se... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(124) 评论(0) 推荐(0)

详述进程创建和程序执行
摘要:#include//一般会将相应命令至于系统启动脚本中,在系统每次重启时开启进程记账功能,其中acctfile中指定一个常规文件的路径名,记账文件通常的路径名是/var/log/pacct或/usr/account/pacct,如果想关闭进程记账功能,指定acctfile为NULLi... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(140) 评论(0) 推荐(0)

定时器与休眠
摘要:#includeint setitimer(int which,const struct itimerval *new_value,struct itimerval *old_value); //创建一个间隔式定时器(interval timer),在未来某个时间点到期,并于此后每隔... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(400) 评论(0) 推荐(0)

信号的基本概念
摘要:SIGABRT 当进程调用abort函数时,系统向该进程发送该信号,默认情况下,该信号会杀死进程,并产生核心转储文件SIGALRM 调用alarm()或者settimer()设置的实时定时器一旦到期,内核将产生该信号SIGBUS 产生该信号,说明某种内存访问... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(197) 评论(0) 推荐(0)

监控文件事件inotify
摘要:#includeint inotify_init(void);//创建一个新的inotify实例,成功会返回一个文件描述符fdint inotifyk_add_watch(int fd,const char *pathname,uint32_t mask);//追加新的的监控项,也可... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(145) 评论(0) 推荐(0)

文件访问控制列表facl
摘要:[root@bogon code]# getfacl a.c //获取文件a.c的文件访问控制列表# file: a.c# owner: root# group: rootuser::rw-group::r--other::r--[root@bogon code]# getfacl... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(381) 评论(0) 推荐(0)

文件属性相关(一)
摘要:获取文件信息:#includeint stat(const char *pathname,struct stat *statbuf);int lstat(const char *pathname,struct stat *statbuf);//用于符号链接,指的是符号本身int fs... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(199) 评论(0) 推荐(0)

将Linux文件清空的几种方法
摘要:1、使用重定向的方法 [root@centos7 ~]# du -h test.txt 4.0K test.txt [root@centos7 ~]# > test.txt [root@centos7 ~]# du -h test.txt 0 test.txt 2、使用true命令重定向清空文件 [ 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(535) 评论(0) 推荐(0)

pread和pwrite函数
摘要:先来介绍pread函数 [root@bogon mycode]# cat test.c #include<stdio.h> #include<stdlib.h> #include<unistd.h> #include<fcntl.h> char buf[20]; void testpread(int 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(516) 评论(0) 推荐(0)

Linux内核模块编程之Helloworld(初级)
摘要:注意printk那里,KERN_ALERT和打印消息之间是没有逗号的,搞得劳资查了半天才发现一直没有提示信息的原因 #include <linux/init.h> #include <linux/module.h> MODULE_LICENSE("Dual BSD/GPL");//MODULE_LI 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(404) 评论(0) 推荐(0)

登录记账
摘要:utmp 文件维护着当前登录进系统的用户记录,每一个用户登录进系统是都会想utmp文件写入一条信息,这条信息包含一个记录着用户名的ut_user字段,当用户登出的时候该条记录会被删除(who之类的程序就是使用utmp文件中的信息来显示当前登录进系统的用户列表) wtmp文件包涵登录登... 阅读全文

posted @ 2017-10-25 18:06 标配的小号 阅读(283) 评论(0) 推荐(0)

导航