转自:http://blog.csdn.net/peter_cloud/article/details/9308333 版权声明:本文为博主原创文章,未经博主允许不得转载. 除非你的原件考虑跨平台. 在Linux编程多使用一些系统函数真的很方便,哎没办法越来越懒~~~~~~ 今天记录一下dirname 和basename这两个简单的处理文件路径的linux系统函数. 头文件: #include <libgen.h> 函数定义: char *dirname(char *path); char *…
在linux系统中有这样两个系统函数,basename 和  dirname 1.basename 用于 获取文件名, 1.1 当给定扩展名作为参数之后,甚至可以直接获取文件名 2.与basename 相对应的 dirname 就是获取文件的路径,哈哈: linux 真是一个神奇的的系统.…
大家都知道,alarm() 是Linux系统自带的定时函数,操作系统管理进程时为每个进程分配了一个定时器,下面利用1秒钟定时,看计算机能计数多少来判断计算机的性能: #include<stdio.h> #include<unistd.h> int main() { int counter; alarm(1); for(counter=0;1;counter++) printf("counter=%d",counter); return 0; } 我的计算机测得是…
c库IO函数的工作流程 c库函数与系统函数的关系 虚拟地址空间 文件描述符…
在Linux和UNIX中有很多的输入输出函数,有时真是让想跟它攀点关系的菜鸟们束手无策.先来看看都有哪些函数,通过解析与总结,看看能不能让大家能这些函数有个理性的认识,哦,原来是这么回事,也就算我没白花这份闲. 内核文件I/O->标准库I/O->高级I/O->IPC中 1.         read()/write(); 2.         pread()/pwrite(); 3.         getc()/putc(); 4.         fgetc()/fputc(); 5…
我们都知道,C语言在UNIX/Linux系统下有一套系统调用(系统函数),比如文件操作open().close().write().read()等,而标准C语言的库函数中也有一套对文件的操作函数fopen().fclose().fwrite().fread()等..那么同样是对文件的操作函数,标C与UC有什么区别呢?是标C效率高还是UC效率高呢?今天就让我们来一探究竟. 程序作用:将0~999999这1000000个整型数据写入文件. 1.标准C实现大量数据写入文件: /*文件名test1.c*…
信号是UNIX 系统所使用的进程通信方法中,最古老的一种.信号不但能从内核发往一个进程,也能从一个进程发往还有一个进程.比如,用户在后台启动了一个要运行较长时间的程序,假设想中断其运行,能够用kill 命令把SIGTERM信号发送给这个进程,SIGTERM 将终止此进程的运行.信号还提供了向UNIX 系统进程传送软中断的简单方法.信号能够中断一个进程,而无论它正在作什么工作.因为信号的特点,所以不用它来作进程间的直接数据传送,而把它用作对非正常情况的处理.因为信号本身不能直接携带信息,这就限制了…
第一章:文件io 1. 文件io讲些什么 文件io这一章讲的是,如何调用Linux OS所提供的相关的OS API,实现文件的读写. 1.1 如何理解“文件IO”这个词 IO就是input output的意思,文件io就是文件输入输出,也就是文件读写. 读写的是什么? 答:是数据. 不过读文件和写文件,到底哪一个是input,哪一个是output呢? 答:input和output,其实是以CPU作为参考点来看的: o(写) C ——————————> 文 P <—————————— 件 U i…
功能:linux系统编程中,setitimer是一个经常被使用的函数,可用来实现延时和定时的功能. 头文件:sys/time.h 函数原型: int setitimer(int which, const struct itimerval *new_value, struct itimerval *old_value); 参数含义: 1.which参数用来设置定时器类型,可选的值为 (1)ITIMER_REAL : 设置定时器以系统真实所花费的时间来计时,运行指定时间后发送SIGALRM信号. (…
注:exit()就是退出,传入的参数是程序退出时的状态码,0表示正常退出,其他表示非正常退出,一般都用-1或者1,标准C里有EXIT_SUCCESS和EXIT_FAILURE两个宏,用exit(EXIT_SUCCESS);可读性比较好一点. 作为系统调用而言,_exit和exit是一对孪生兄弟,它们究竟相似到什么程度,我们可以从Linux的源码中找到答案: #define __NR__exit __NR_exit /* 摘自文件include/asm-i386/unistd.h第334行 */…
这个系列的博客贴的都是我大二的时候学习Linux系统高级编程时的一些实验程序,都挺简单的.贴出来纯粹是聊胜于无. 实验题目:Linux环境下系统函数综合实验 实验目的:熟悉并掌握Linux环境下数学函数.字符函数.系统时间与日期函数.环境控制函数.内存分配函数以及数据结构中常用函数的使用方法. 一.Linux环境下数学函数的使用 设计程序,满足如下要求: 1.使用rand函数产生10个介于1到10之间的随机数值.要求在程序中对每行代码添加注释. #include<stdio.h> #inclu…
Linux系统的I/O也就是一般所说的低级I/O--操作系统提供的基本IO服务,与os绑定,特定于Linux平台.而标准I/O是ANSI C建立的一个标准I/O模型,是一个标准函数包和stdio.h头文件中的定义,具有一定的可移植性.两者一个显著的不同点在于,标准I/O默认采用了缓冲机制,比如调用fopen函数,不仅打开一个文件,而且建立了一个缓冲区(读写模式下将建立两个缓冲区),还创建了一个包含文件和缓冲区相关数据的数据结构.低级I/O一般没有采用缓冲,需要自己创建缓冲区,不过在Linux系统…
linux 系统获得当前文件夹下存在的所有文件 scandir函数和struct dirent **namelist结构体 1.引用头文件#include<dirent.h> struct dirent **namelist;int itotalfile;itotalfile = scandir(filenameBuf,&namelist,0,alphasort);char filenamelist[itotalfile][128];for(int j = 0; j<itotal…
首先说明关于几个时间的概念: 世界时:起初,国际上的标准时间是格林尼治标准时间,以太阳横穿本初子午线的时刻为标准时间正午12点.它根据天文环境来定义,就像古代人们根据日晷来计时一样,如下图: 原子时:地球一年中自转的速度并不是恒定的,它有时候转的快,有时候转的慢,地震可能使得地球自转加快,而发射卫星则使得自转减缓,但地球的总体自转趋势是越来越慢.如果按照地球自转一圈固定为24小时来定义时间长度,会导致一秒钟的长度不稳定,或长或短.为解决这个问题,科研人员发现某元素的原子运动频率很稳定,可以以该元…
Linux常用系统函数 一.进程控制 fork 创建一个新进程clone 按指定条件创建子进程execve 运行可执行文件exit 中止进程_exit 立即中止当前进程getdtablesize 进程所能打开的最大文件数getpgid 获取指定进程组标识号setpgid 设置指定进程组标志号getpgrp 获取当前进程组标识号setpgrp 设置当前进程组标志号getpid 获取进程标识号getppid 获取父进程标识号getpriority 获取调度优先级setpriority 设置调度优先级…
golang运行最理想的环境是linux系统中,编译速度和执行速度都比较快,本文是关于golang中的文件操作函数 在golang标准库中os包提供了不依赖平台的借口,但是使用的风格是unix风格的. 函数Openfile是一个可以指定选项(与linux中的文件操作函数的常数是相同的,如O_APPEND),指定的模式如0666等等,打开指定的文件 下面是openfile函数的原型golang代码 func OpenFile(name string, flag int,perm FileMode)…
1.linux系统中的中断处理  1.0裸板中中断异常是如何处理的?     以s5p6818+按键为例          1)按键中断的触发        中断源级配置            管脚功能            中断使能            中断触发方式        (如果中断源是uart/i2c 只需要配置中断使能)        中断级级设置            中断优先级设置            中断使能        ARMcore级设置            cp…
在Unix/Linux系统下,使用gettimeofday函数来获得当前系统的时间戳,精度可达到微秒(microsecond,即μs)级别. 通过结构体timeval来存放当前时间戳的信息: #ifndef _STRUCT_TIMEVAL #define _STRUCT_TIMEVAL struct timeval _STRUCT_TIMEVAL { __darwin_time_t tv_sec; /* seconds */ __darwin_suseconds_t tv_usec; /* an…
socket信息数据结构 #include <netinet/in.h> struct sockaddr { unsigned short sa_family; /*地址族*/ ]; /*14字节的协议地址,包含该socket的IP地址和端口号.*/ }; struct sockaddr_in { short int sa_family; /*地址族*/ unsigned short int sin_port; /*端口号*/ struct in_addr sin_addr; /*IP地址*/…
先来说说自己在做工程过程中的一些理解: 1, 输入time_t,输出tm格式的函数 loctaltime(time_t) / gmtime(time_t) 其中localtime会受时区和夏令时影响,也就是说系统会把函数输入的time_t格式的值作为UTC时间,然后根据本地的TZ环境变量,进行小时的偏移得到一个tm格式的时间: gmtime则不做环境变量相关的处理,直接获得tm格式的值. 2, 输入tm,输出time_t格式的函数mktime() 这个函数也受TZ环境变量的影响,确切来说受夏令时…
man, info, help, date, hwclock, cal, shutdown, reboot, halt, poweroff, type, cd, which, dirname, basename, who, which, whatis, makewhatis, echo, hash, tty tac:cat按行逆序显示 file FILE...: 查看文件内容的格式 # mkdir `date +%F-%H-%M-%S`创建以当前时间命令目录,例如2014-----; rmdir…
<一>线上查询及帮助命令(2)1.man man [选项] [命令] 查看命令帮助,命令的词典,更复杂的还有info,但不常用. #man cd-a 显示所有的手册页,不只是显示第一个-f 只显示命令的功能,而不显示详细的说明文件,跟whatis命令相同-w 不显示手册内容,只显示将被格式化和显示的文件所在位置2.help help [选项] [命令] 查看Linux内置命令的帮助. help cd -d 显示命令简短主题描述 -s 显示命令简短语法描述 <二>文件和目录操作命令(…
前言    系统定制在前面的博文中我们就有谈到过了,不过那个裁减制作有简单了点,只是能让系统跑起来而,没有太多的功能,也没的用户登录入口,而这里我们将详细和深入的来谈谈Linux系统的详细定制过程和实现用户例如.远程登录和Nginx安装过程.一步一步从头开始定制属于我们自己的系统. 正文    首先我们先来简单的介绍一下我们这里定制属于自己的Linux系统的基本元素,其中一些相关的信息也可以参考我前面写过的博文    一个定制的linux内核+一个定制的busybox就可以定制一个小型的Linu…
Linux常见快捷键(6个) ctrl + u:剪贴光标前面 ctrl + k:剪贴光标后面 ctrl + y:粘贴 ctrl + r:查找命令 ctrl + insert:复制 shift+ insert:粘贴 Linux常见快捷命令(6个) ~: 当前用户的家目录 -: 用户上一次所在的目录 --- 原理: env | grep -i oldpwd 有一个专门记录的环境变量 ``: 反引号,tab之上 表示将文件的结果作进一步处理 $() ==> `` $()等价于反引号,用于解析命令 --…
Linux就这个范儿 第16章 谁都可以从头再来--从头开始编译一套Linux系统  nsswitch.conf配置文件 朋友们,今天我对你们说,在此时此刻,我们虽然遭受种种困难和挫折,我仍然有一个梦想.……我梦想有一天,这个国家会站起来,并真正实现其信条的真谛:‘我们认为这些真理是不言而喻的:人人生而平等.’……我梦想有一天,幽谷上升.高山下降,坎坷曲折之路成坦途,圣光披露.照满人间.——马丁·路德·金这有点扯远了,我肯定是比不上马丁·路德·金的.不过我曾经也有一个梦想,就是:当我的电脑一开机…
哪个Python版本? 当我提及Python,所指的就是CPython 2(准确的是2.7).我会显式提醒那些相同的代码在CPython 3 (3.3)上是不工作的,以及提供一份解释不同之处的备选代码.请确保你已经安装了CPython,在终端上输入python或者python3回车,然后你在终端上应该能看到python的提示符(prompt). 请注意,所有的程序在它们第一行都是#!/usr/bin/env/python,也就是说,我们想要Python的解释器来执行这些脚本.因此,如果你想你的脚…
这里是以CentOS 6.5  64bit为例(学习用这个,Kali神马的有兴趣自己研究(这个系统是玩渗透用的)) 一 ---->配置Vmware Workstation     自定义--选择兼容版本--选择安装方法(选择稍后安装)--选择系统类型(linux-centos 64-bit)--设置虚拟机的名称和安装位置     --设置CPU数和线程数--设置虚拟机的内存大小--设置网络类型(桥接网络)--设置IO模型--设置磁盘类型--设置磁盘接口--设置磁盘空间大小--修改虚拟机的磁盘名称…
1 文件管理2 软件管理3 系统管理4 服务管理5 网络管理6 磁盘管理7 用户管理8 脚本相关9 服务配置==================================----------------------------------1 文件管理----------------------------------创建空白文件touch不提示删除非空目录rm -rf 目录名(-r:递归删除-f 强制)##################################恢复rm 删除的文件…
说明1:在一个Linux宿主机系统上,通过以上步骤,可以制作一个微小的Linux系统(可以放置在U盘中等),然后在其它的主机(虚拟机或者物理机)上运行,以实现最小化定制系统的目的. 说明2:上图中黑色部分是主要流程,蓝色部分是详细流程,棕色部分是注释说明等 对于上图中几点细节的详解: 阶段 说明 目标磁盘分区格式化挂载 目标磁盘是/dev/sdb,大小为1G,分区sdb1:100M,sdb2:500M即可 安装grub至目标磁盘 无 复制内核和initrd文件 VERSION是内核版本,如2.6…
linux系统程序设计教程 第一章:生成一个Process(进程) 进程是什么?简单地说,进程就是在执行状态下的一个程序(包括CPU状态,所占内存的状态,等等) A进程生成了B进程,也就是说,A程序在执行的时候,又生成了另一个进程B.这个时候,我们可以把A进程叫做父进程,把B进程叫做子进程. 例程序: // Usage : ./a.out 20 #include int main( int argc , char *argv[]) { int dep_time; dep_time = atoi(…