Linux-C
文章平均质量分 79
闫钰晨
这个作者很懒,什么都没留下…
展开
-
编程实践----实现自己的ls命令
一、程序函数流程图二、关键函数的功能 1.void path_handle(char *path) 函数功能:处理传递过来的路径信息,判断文件类型。 2.int file_information(char *path) 函数功能:获取文件信息 3.void directory_information(char *path) 函数功能:获取目录信息原创 2016-07-27 16:15:34 · 2153 阅读 · 0 评论 -
Linux系统编程--线程控制(二)
一、私有数据1.特殊的变量多线程环境下,进程内的所有线程共享进程的数据空间,因此全局变量为所有线程共有。在程序设计中有时需要保存线程自己的全局变量,这种特殊的变量仅在某个线程内部有效。举例来说,errno它返回标准的出错代码,errno不应该为局部变量,几乎每个函数都应该可以访问它,但它又不能为全局变量,否则在一个线程里输出的很可能是另一个线程的出错信息。这个问题可以通过创建线程的私有数据(Thre原创 2016-08-04 11:35:30 · 505 阅读 · 0 评论 -
Linux网络编程--网络编程基本原理
1.网络模型与协议为了减少协议设计的复杂性,大多数网络模型都是按层的方式来组织的。在分层网络模型中,每一层都为上一层提供一定的服务,而把如何实现本层服务的细节对上一层加以屏蔽。上层只需知道下层提供了什么功能以及对这些功能的接口,而不必关心下一层如何实现这些功能。 TCP/IP各层功能如下: [1].网络接口层网络接口层包括多种逻辑链路控制和媒体访问协议。它负责将网络层原创 2016-08-04 15:33:26 · 1115 阅读 · 1 评论 -
暑假讲座总结(一)
*听了学长的讲座之后,发现自己还有很多不会的东西,有些都没有听过,而且自己并不能完整的掌握,现在只能将一些概念,名词了解记录下来。1.静态链接库百度静态链接库 静态链接库的优点:减少编译时间 静态链接库的缺点:需要大空间;占内存/占磁盘 2.共享库&&运行时库百度动态链接库 动态链接库的优点:3.ABI(Application Binary Interfaces 应用程序二原创 2016-08-01 21:12:33 · 598 阅读 · 0 评论 -
暑假讲座总结(二)--hello world ?
1.程序为什么要编译?答:因为我们所使用的是高级编程语言,机器并不认识这些语言,机器只能识别机器语言。2.编译器做了哪些事?答:预编译、编译、汇编、链接。这个是我在C Primer Plus上所看到的: 1.首先编译器将源代码转换成机器语言代码,将结果放置在一个目标代码文件(或简称为目标文件)中(这里假设您的代码由单个文件组成)。目标文件包含源代码的转换结果,但它还不是一个完整的程序。2.目标代码原创 2016-08-01 22:31:04 · 452 阅读 · 0 评论 -
Linux网络编程--套接字编程
一、套接字1、套接字地址结构1.struct sockaddr结构struct sockaddr定义了一种通用的套接字地址,它在linux/socket.h中的定义代码如下:struct sockaddr { unsigned short sa_family; //地址类型 char sa_data[14]; //14字节的协议地址 }; sa原创 2016-08-06 09:55:15 · 556 阅读 · 0 评论 -
Linux系统编程--线程控制(一)
一、线程1.线程是什么 线程是计算机中独立运行的最小单位,运行时占用很少说的系统资源。 2.线程的优点多线程相对于多进程的优点 [1].多进程的情况下,每个进程都有自己独立的地址空间,而多线程情况下,同一进程内的线程共享进程的地址空间。因此创建一个新的进程时就要耗费时间来为其分配系统资源,而创建一个新的线程花费的时间则要少的多。 [2].在系统调度方面,由于进程地址独立而线程共享地址空原创 2016-08-03 10:30:22 · 518 阅读 · 0 评论 -
Linux网络编程--主要系统调用函数
一、字节顺序和转换函数1、大小端不同机器内部对变量的字节存储顺序不同,有的采用大端模式,有的采用小端模式 大端模式:高字节数据存放在低字节处,低字节数据存放在高字节处 小端模式:低字节数据存放在低字节处,高字节数据存放在高字节处2、网络字节顺序在网络上传输数据时,由于数据传输的两端可能对应不同的硬件平台,采用的存储字节顺序也可能不一致,因此TCP/IP协议规定了在网络上必须采用网络字节顺序(也就原创 2016-08-08 15:06:57 · 3180 阅读 · 0 评论 -
Linux系统编程--信号及信号处理(一)
Linux信号介绍一、信号解释信号是一种软件中断,它提供了一种处理异步事件的方法,也是进程间唯一的异步通信方式。在linux系统中,根据POSIX标准扩展以后的信号机制,不仅可以用来通知某进程发生了什么事件,还可以给进程传递数据。二、信号的来源 硬件方式 1.当用户在终端上按下某些键时,将产生信号。 2.硬件异常产生信号:除数为0,无效的存储访问等。这些事件通常由硬件(如CPU)检测到,并原创 2016-10-07 15:01:21 · 840 阅读 · 0 评论 -
Linux系统编程--文件(四)
一、目录的创建和删除1.创建 mkdir#include<sys/stat.h> #include<sys/types.h> int mkdir(const char *pathname, mode_t mode);执行成功返回0,错误返回-12.删除 rmdir#include<unistd.h> int rmdir(const char *pathname);执行成功返回0,错误返回-1rmdi原创 2016-07-21 14:43:42 · 638 阅读 · 1 评论 -
Linux系统编程--文件(三)
一、获取文件属性stat#include<sys/types.h> #include<sys/stat.h> #include<unistd.h> int stat(const char *file_name, sturct stat *buf);成功调用返回0,错误返回-1参数 由file_name指定的文件名的状态信息,保存在参数sturct stat *buf 中 参数struct原创 2016-07-21 11:43:09 · 471 阅读 · 0 评论 -
Linux系统编程--进程控制(一)
一、linux 进程1、进程概念百度2、进程标识 进程ID:每个进程都通过惟一的进程ID标识, 进程ID是一个非负数。 每个进程除了进程ID外还有一些其他标识信息,都可通过相应的函数获得。 3、Linux进程的结构 Linux中一个进程由3部分组成:代码段、数据段、堆栈段 4、Linux进程状态(1)R 运行状态 (2)S可中断等待状态 (3)D不可中断等待状态 (4原创 2016-07-27 22:09:00 · 823 阅读 · 0 评论 -
Linux系统编程--进程控制 (二)
一、创建进程1.创建进程: (1)操作系统创建:它们之间是平等的,一般不存在资源继承关系。 (2)父进程创建:它和父进程存在隶属关系,通常称为子进程。子进程又可创建进程,这样形成一个进程家族。子进程可以继承父进程几乎所有的资源。 子进程继承父进程的很多属性,主要包括:用户ID,组ID,当前工作目录,根目录,打开的文件,创建文件时使用的屏蔽字,信号屏蔽字,上下文环境,共享的存储原创 2016-07-28 10:42:45 · 556 阅读 · 0 评论 -
Linux系统编程--进程控制 (三)
一、执行新程序使用fork或vfork创建子进程以后,子进程调用exec函数来执行另外一个函数。exec函数族#include<unistd.h> int execve(const char *path, char *const argv[], char *const envp[]); int execv(const char *path, char *const envp[]); int exec原创 2016-07-28 16:10:45 · 597 阅读 · 0 评论 -
Linux-c 编程基础(一)
1.1Linux 的特性:1.多用户 2.多任务 3.多平台 4.良好的用户界面 5.强大的网络功能 6.安全、稳定和高效 7.良好的可移植性 8.开放和免费1.2 c语言的特点1.两重性 2.结构化 3.与Linux紧密结合 4.可移植性好1.4Linux Shell1.Shell是一个命令解释器,它通过接受用户输入的命令来启动,暂停,原创 2016-07-20 20:55:49 · 710 阅读 · 0 评论 -
Linux系统编程--文件(一)
1.系统编程系统调用:应用程序同系统之间的接口。由操作系统实现提供的所有系统调用所构成的集合即程序接口或编程接口。 封装系统调用:更加方便程序员使用,跨平台。 百度 这个概念看书时候第一次遇到,百度了一下,看完只能说是有了一个模糊的概念。封装系统调用的理解就更不是特别清晰。2.Llinux的文件结构 Llinux操作系统是以文件为基础而设计的,Llinux的文件子系统主要用于管理文件存储空原创 2016-07-20 21:32:03 · 663 阅读 · 0 评论 -
Linux系统编程--文件(二)
一、文件的输入输出open#include <sys/types.h> #include <sys/stat.h> #include <fcntl.h> int open(const char *pathname, int flags); int open(const char *pathname, int flags, mode_t mode);成功调用返回一个文件描述符,错误返回-1参数 p原创 2016-07-21 10:50:54 · 531 阅读 · 0 评论 -
Linux系统编程--信号及信号处理(二)
信号处理一、信号的捕捉和处理1、signal函数signal函数用来设置进程在接收到信号时的动作#include <signal.h> typedef void (*sighandler_t) (int); sighandler_t signal(int signum, sighandler_t handler); signal根据参数signum指定的信号编号来设置该信号的处理函数,当指定的信原创 2016-10-07 18:09:19 · 684 阅读 · 0 评论