Welcome 微信登录
编程资源 图片资源库 蚂蚁家优选 PDF转换器

首页 / 操作系统 / Linux

Linux C实现cp功能

Linux C实现cp功能

一:背景看了unix/linux编程实践,跟着书上代码实现了普通文件的拷贝,看到课后习题后需要实现目录之间的拷贝,因此有了本文,我最初实现cp用了180多行代码,后来觉得很多地方可以封装,但是最后居然越封装越多达到了200多行,今晚果断再次封装,修剪了代码大概170多行,要比课后答案的要简便点。该cp可以实现普通文件的拷贝,拷贝到指定目录下,和目录直接拷贝等功能。二:思路目录之间的拷贝我觉得最主要的功能就是path路径的拼装,处理好path路径问题,就很简...
C语言的函数返回值

C语言的函数返回值

一:背景谈到C语言的函数返回值,可能会感觉很亲切,不就是一个函数返回值嘛,当初学C语言的时候早就学过了很easy嘛,我曾经也是这么想的。后来要上研究生了,研究生阶段搞得就是C,所以又重新开始学习C,学习C的过程中遇到了很多问题,在此博客中一一记录。实际过程中遇到的第一个问题自然就是函数返回值了。如果有人问你在一个函数中声明一个字符串数组,最后再return这个数组。这可以实现嘛?如果是问我我可能会毫不犹豫的说OK。那事实呢?由此本文诞生了......C++...
C语言可执行文件的内存结构

C语言可执行文件的内存结构

以前看过C可执行文件的内存结构,但都只是当时很清楚,时候就忘的差不多了,没有细细去品味,一段时间就忘得差不多了,今天看了一些书籍和博文,决定将C可执行文件的内存结构的内容通过博客记录下来。下面是一张C可执行文件的内存结构:可见进程的逻辑地址空间可分为代码段,数据段,bss段,以及堆和栈段。这些段存放的数据分别是:代码段:存放二进制程序,和常量。可通过size命令查看可执行文件的各个段的大小:#include <stdio.h>int main(...
Linux C实现mkdir功能

Linux C实现mkdir功能

一:背景Linux 中的mkdir命令是用来创建一个目录的,相应的就需要使用到linux中的系统调用函数mkdir来实现目录创建的功能。单单只是创建目录的话一个系统调用足以,本文是使用mkdir函数来实现mkdir -p这个选项的功能,对其不存在的父目录实现创建。二:思路对于一个a/b/c这样的一个多级目录,要想实现父目录的创建方法和思路有很多,可以进行字符串处理分出一级一级目录来,但是这样实现很是繁琐,以至于我想到了递归实现。思路如下:1.先判断a/b/...
Flask-mail扩展的基本使用

Flask-mail扩展的基本使用

1.安装pip install flask-mail2.使用 1.配置一些发送邮件的参数例如邮件发送服务器的地址,端口,是否加密等。 2.初始化flask-mail插件。 3.创建Message实例,设置发送的内容,地址和主题等信息 4.使用Mail实例针对Message的实例来发送3.配置参数详解下面这是在使用mail的时候需要指定的一些配置参数,需要在使用mail之前来设置相关的参数。MAIL_HOSTNAME localhost Hostna...
Python写WEB日志分析程序的一些思路

Python写WEB日志分析程序的一些思路

1.背景 刚到一家公司需要写一个实时分析tshark捕捉到的数据,tshark一直往文本里面写数据,写一个程序要实时获取到添加的数据并进行分析处理最后入库。此时思绪狂飞,想了一些比较挫的方法。本人想到的方法: 1.每隔一定时间去查看下文件的mtime,如果有改动则读取数据,并记录读取的行数。下次再去读这个文件的数据则上次记录的行数开始继续读。当文件行数太大的时候这个程序的效率就很慢了,也可以记录上次读取的字节数,然后使用linux下的open系统系统中...
Linux内核Crash分析

Linux内核Crash分析

在工作中经常会遇到一些内核crash的情况,本文就是根据内核出现crash后的打印信息,对其进行了分析,使用的内核版本为:Linux2.6.32。每一个进程的生命周期内,其生命周期的范围为几毫秒到几个月。一般都是和内核有交互,例如用户空间程序使用系统调用进入内核空间。这时使用的不再是用户空间的栈空间,使用对应的内核栈空间。对每一个进程来说,Linux内核都会把两个不同的数据结构紧凑的存放在一个单独为进程分配的存储空间中:一个是内核态的进程堆栈,另一个是紧挨...
基于 Docker 开发 NodeJS 应用

基于 Docker 开发 NodeJS 应用

这是两篇文章的第一篇。本文涵盖了有关在使用Express框架开发一个Node应用时,用Docker 替代Vagrant 的比较详细的教程, 应用将使用 connect-redis 中间件将会话信息持久化到Redis中。 第二篇文章将介绍到将这个开发的设置产品化。有关这个 Node 应用此应用包含一个 package.json, server.js 以及一个 .gitignore 文件, 它们简单到可以信手拈来。.gitignorepackage.json{...
OGLplus教程学习笔记 -- Outline

OGLplus教程学习笔记 -- Outline

最近一直在thinking inmodern C++,大部分都是使用基于对象(object based)的技术。使得对象相较于C++的面向对象风格的程序而言,对象要散列一些,结构更清晰。对象之间适配使用了大量的泛型编程(Generic programming)技术。Boost C++库的发展和C++11语言新特性对模板的支持,优秀的泛型库大量涌现。它们都继承了STL极高的可复用性与很低的学习曲线。Jeremy Ong写的Selene库是笔者目前阅读过的非常...
C++ 拷贝构造函数 赋值函数调用

C++ 拷贝构造函数 赋值函数调用

类定义中,如果未提供自己的拷贝构造函数,则C++提供一个默认拷贝构造函数,就像没有提供构造函数时,C++提供默认构造函数一样。C++提供的默认拷贝构造函数工作的方法是:完成一个成员一个成员的拷贝,如果成员是类对象,则调用其拷贝构造函数或者默认拷贝构造函数。而拷贝构造函数和赋值运算符则是C++独有的,也是很多人所不熟悉的地方。构造函数和拷贝构造函数用于从一个对象复制出另一个对象。系统提供的默认拷贝构造函数和赋值运算的工作方式是内存拷贝,也就是浅拷贝。如果对象...
C++ 中 const 常量函数 static 变量 整理

C++ 中 const 常量函数 static 变量 整理

const 只对其左边起作用,如果左边没数据 则对右边起作用如:const int * p; //修饰int 指向的数不能修改(即:不能 *p = 3形式),但指针可以修改int const * p 同const int *p ;int * const p 修饰* 是常量指针 指针不能修改(即:不能 int a ,p= &a )但其指向变量可以修改(可以*p = 3))常成员函数声明:<类型标志符>函数名(参数表)const;说明:(1...
OpenGL FBO 对象

OpenGL FBO 对象

概要在OpenGL的渲染管线中,几何数据和纹理通过一系列变换和测试,最终被渲染成屏幕上的二维像素。那些用于存储颜色值和测试结果的二维数组的几何被称为帧缓冲区(frame buffer)。这些二维数组按用途划分,可分为颜色缓冲区(color buffer),深度缓冲区(depth buffer),模版缓冲区(stencil buffer)和累加缓冲区(accumulation buffer)。当我们创建了一个可供OpenGL绘制用的窗体后,窗体系统会为我们生...
OpenGL 深度缓冲区 Z缓冲区 介绍

OpenGL 深度缓冲区 Z缓冲区 介绍

第一篇【颜色缓冲区】 颜色缓冲区(COLOR_BUFFER)就是帧缓冲区(FRAME_BUFFER),你需要渲染的场景最终每一个像素都要写入该缓冲区,然后由它在渲染到屏幕上显示.【深度缓冲区】 深度缓冲区(DEPTH_BUFFER)与帧缓冲区对应,用于记录上面每个像素的深度值,通过深度缓冲区,我们可以进行深度测试,从而确定像素的遮挡关系,保证渲染正确.【模板缓冲区】 模版缓冲(STENCIL_BUFFER)与深度缓冲大小相同,通过设置模版缓冲每个像素...
C++ 基于Policy 的 模板编程

C++ 基于Policy 的 模板编程

在没真正接触C++ 模板编程之前,真的没有想到C++ 还可以这么用,最大的感触是:太灵活了,太强大了。最初接触模板威力还是在Delta3d中,感觉里面的模板使用实在是灵活与方便,特别是dtAI中使用了大量的模板,大大增强了库的可扩展性。本文基于《C++ 设计新思维》 而写。 下载见 http://www.linuxidc.com/Linux/2014-07/104850.htmC++ Primer Plus 第6版 中文版 清晰有书签PDF+源代码 htt...
【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形

【OpenGL4.0】GLSL渲染语言入门与VBO、VAO使用:绘制一个三角形

以前都是用Cg的,现在改用GLSL,又要重新学,不过两种语言很多都是相通的。下面的例子是实现绘制一个三角形的简单程序。采用了VBO(veretx buffer object)、VAO(vertex array object)等OpenGL的一些新特性。越往后发展,可编程管线肯定是大势所趋,OpenGL里原来的一些固定管线的内容肯定会被废弃掉。所以从现在开始写程序就要养成使用新特性、采用可编程管线技术的好习惯。一、VAO、VBO介绍随着OpenGL状态和固定...
<< 3641 3642 3643 3644 3645 3646 3647 3648 3649 3650 >>