: 2018-05-31 16:42:13.792121737 +0800 这是三个时间,这三个时间的标签分别是Access(也叫做atime)、Modify(也叫做mtime)和Change(也叫做ctime...ctime:更改时间:表示文件最后被改变的时间,包括文件状态(比如权限、所有者等)和文件内容的改变。 下面是一个例子。...Modify: 2018-06-12 12:18:57.627921500 +0800 Change: 2018-06-12 12:18:57.627921500 +0800 Birth: - mtime和ctime...Modify: 2018-06-12 12:18:57.627921500 +0800 Change: 2018-06-12 12:21:11.595925387 +0800 Birth: - 仅有ctime
在Linux中有atime,ctime,mtime三个时间属性容易被搞混 简名 全名 中文 作用 atime Access...Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Change Time 变化时间 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 mtime Modify Time...修改时间 最后一次修改文件(内容)或者目录(内容)的时间 查看文件的atime,ctime,mtime > stat rumenz.txt File: ‘rumenz.txt’ Size:...、mtime 命令 atime mtime ctime mv N N Y cp Y N N.../linux-atime-ctime-mtime.html 微信公众号:入门小站
0x00 前情提要 在 alias 后门 | Linux 后门系列一文中,我们为了让后门完美一些,修改了后门文件的 atime、mtime,但是 ctime 一直没有办法修改,今天我们来把这一块补齐,...让后门更加完美 atime -> access time, 访问时间 mtime -> modify time,修改时间 ctime -> change time, 状态变化时间 最新版 Linux 中多了一个属性...ctime是随着改变而改变的 0x02 修改 ctime 的理论方法 由于ctime的特性,我觉得这个问题可以从三个角度去考虑 改变更新文件时间戳的应用运行状态 改变当前时间 改变展示系统时间戳的应用以及属性...所以可以查看 stat 的源代码,看一下 stat 应用是如何获取和管理 ctime 的,针对其调用的方法进行系统性地修改应该也是可以实现修改文件 ctime 的 0x03 系统时钟与硬件时钟 Linux...%EF%BC%88%E4%BF%AE%E6%94%B9%E6%97%B6%E9%97%B4%EF%BC%8C%E8%AE%BF%E9%97%AE%E6%97%B6%E9%97%B4%EF%BC%89
在Linux中有atime,ctime,mtime三个时间属性容易被搞 简名 全名 中文 作用 atime Access Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Change...Time 变化时间 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 mtime Modify Time 修改时间 最后一次修改文件(内容)或者目录(内容)的时间 查看文件的atime,ctime...-14 21:22:12.753922743 +0800 Change: 2021-02-14 21:22:12.753922743 +0800 Birth: -> 什么命令会修改atime、 ctime...、mtime 命令 atime mtime ctime mv N N Y cp Y N N chmod N N Y chown N N Y touch Y Y Y >、>> Y Y Y vim、vi(不修改.../linux-atime-ctime-mtime.html
在Linux中有atime,ctime,mtime三个时间属性容易被搞混 简名 全名 中文 作用 atime Access...Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Change Time 变化时间 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 mtime Modify Time...修改时间 最后一次修改文件(内容)或者目录(内容)的时间 查看文件的atime,ctime,mtime > stat rumenz.txt File: ‘rumenz.txt’ Size:...、mtime 命令 atime mtime ctime mv N N Y cp Y N N.../linux-atime-ctime-mtime.html
在Linux中有atime,ctime,mtime三个时间属性容易被搞混 简名 全名 中文 作用 atime Access...Time 访问时间 最后一次访问文件(读取或执行)的时间 ctime Change Time 变化时间 最后一次改变文件(属性或权限)或者目录(属性或权限)的时间 mtime Modify Time...修改时间 最后一次修改文件(内容)或者目录(内容)的时间 查看文件的atime,ctime,mtime > stat rumenz.txt File: ‘rumenz.txt’ Size:...、mtime 命令 atime mtime ctime mv N N Y cp Y N N...因为对文件编辑之后,不仅访问了文件(改变了atime),还增删了内容,这个文件的大小等状态也发生了变化,所以mtime、ctime变化也很正常 [wx.jpg]
在上一篇笔记中有分享Linux下的vi/vim编辑器的使用方法(【Linux笔记】Vi/Vim编辑器),现在我们就可以使用vi/vim编辑器编写C代码了。那么写完代码该怎么进行编译呢?...关于在Windows命令行下编译C程序的方法可查看往期笔记:【C语言笔记】windows命令行下编译C程序、【C语言笔记】使用notepad++、MinGW来开发C程序。...首先,使用命令gcc -v查看当前的Linux发行版是否有安装gcc编译器(PS:本文使用的Linux发行版是红帽6): ? 使用vi/vim编辑器写代码并保存为hello.c: ?...在Linux下进行C语言编程的学习可能会增加学习的成本,但是从长远来看仍然是有必要的。...若不想安装Linux系统,也想适应一下Linux环境,则可参考往期笔记:【C语言笔记】Windows下体验Linux环境。
大家好,又见面了,我是全栈君 在很多人的眼里,C语言和linux常常是分不开的。这其中的原因很多,其中最重要的一部分我认为是linux本身就是C语言的杰出作品。...当然,linux操作系统本身对C语言的支持也是相当到位的。...作为一个真正的程序员来说,如果没有在linux下面用C语言编写过完整的程序,那么只能说他对C语言本身的理解还相关肤浅,对系统本身的认识也不够到位。...如果还没有过Linux编程经验的朋友可以首先在自己的pc上面安装一个虚拟机,然后就可以在shell下面编写自己的C语言代码了。...如果你看到了,那么恭喜你,你已经可以开始linux的c语言编程之旅了。 当然,我们不会满足于这么简单的打印功能。
MySQL有以下特性: (1) 使用C和C++编写,并使用了多种编译器进行测试,保证源码的可移植性。 (2) 支持多线程,利用CPU资源,支持多用户。...MySQL数据库的安装 安装MySQL数据库需要三个软件包: (1)服务器 (2)客户端 (3) 开发库-如果用C或C语言开发,就得安装开发库。...MySQL-server-5.5.8-1.rhel5.i386.rpm MySQL-client-5.5.8-1.rhel5.i386.rpm MySQL-devel-5.5.8-1.rhel5.i386.rpm 在Linux...MySQL数据库的基本操作 --查看linux系统下是否装有: cd /etc/init.d/mysqld/ --启动MySQL : /etc/init.d/mysqld start --进入MySQL...C语言操作MySQL数据库 代码1: /*******************************************************************************
精短高效的XML解析器,纯C单一程序,应用于银行的国税库行横向联网接口系统中,稳定可靠,运行速度飞快,非相应的JAVA程序可比.以下为大部分源码: /* Copyright (c) 2005 wzs *...XVAL_DATA 4 #define XVAL_TAG 5 /* 空标志 */ #define XVAL_NONE 0 #define XVAL_ERROR -1 static int isSpace(int c).../* 是空否 */ { switch (c) { case 0x20: case 0xD: case 0xA: case 0x9: return 1; } return 0; } static...int isNameTChar(int c) /* 有效的名称前导符 */ { return (c>=’A’ && c=’a’ && c<=’z’) || (c==’_’
第一个参数是子线程标识符,第二个参数是用户定义的指针用来存储线程结束时的返回值*/ return 0; } //编译运行多线程的程序,要在gcc命令尾部加上-lpthread //gcc example1.c...ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164863226016782089367009%2522%252C%2522scm%2522%...ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164868737616780261991331%2522%252C%2522scm%2522%...ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164868779716781685333883%2522%252C%2522scm%2522%...ops_request_misc=%257B%2522request%255Fid%2522%253A%2522164868779716781685333883%2522%252C%2522scm%2522%
---恢复内容开始--- 今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去。。。...(GNU CCompiler) 是GNU推出的多平台编译器,以下是gcc支持编译的一些源文件的后缀及其解释 .c后缀 c语言源代码文件 .h后缀 是程序所包含的头文件 ...假如用户在安装过程中少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装Linux的C开发语言环境的。...7、Linux下C程序开发过程: (1)使用vi工具编辑写源程序; (2)保存为*.c; (3)使用gcc编译成二进制可执行文件; (4)....**argv) { printf("Hello Linux\n"); return 0; } 9、c程序组成 对于一个c程序,安装完成后可以分成三个部分
#include <stdio.h> #include <stdlib.h> #include <string.h> #define MAX_SIZE 102...
递推阶段:古之欲明明德于天下者,先治其国;欲治其国者,先齐其家;欲齐其家者,先修其身;欲修其身者,先正其心;欲正其心者,先诚其意;欲诚其意者,先致其知,致知在格...
---- 前言 在 C语言 的文件流中,存在一个 FILE 结构体类型,其中包含了文件的诸多读写信息以及重要的文件描述符 fd,在此类型之上,诞生了 C语言 文件相关操作,如 fopen、fclose、...fwrite 等,这些函数本质上都是对系统调用的封装,因此我们可以根据系统调用和缓冲区相关知识,模拟实现出一个简单的 C语言 文件流 本文重点 : 模拟实现 FILE 及 C语言 文件操作相关函数 注意...int _flush; //刷新方式,位图结构 int _fd; //文件描述符 }MY_FILE; 当前模拟实现的 FILE 只具备最基本的功能,重点在于呈现原理 在模拟实现 C语言...不同的缓冲区有不同的刷新策略,如果未触发相应的刷新策略,会导致数据滞留在缓冲区中,比如如果内存中的数据还没有刷新就断电的话,会导致数据丢失;除了通过特定方式进行缓冲区冲刷外,还可以手动刷新缓冲区,在 C语言...---- 总结 以上就是本次关于 Linux【模拟实现C语言文件流】的全部内容了,通过 系统调用+缓冲区,我们模拟实现了一个简单版的 myStdio 库,在模拟实现过程中势必会遇到很多问题,而这些问题都能帮助你更好的理解缓冲区的本质
示例代码 test1.c: #include #include #include int main() { FILE *f...; flock(fileno(f), LOCK_UN); } else { printf("lock failed\n"); } return 0; } test2.c...fp); } fclose(fp); return 0; } 测试如下: 在终端1中,运行test1 在终端2中,运行test2 这里主要说明的是在test2.c中
今天开始根据Linux C编程相关视频的学习所做的笔记,希望能一直坚持下去。。。...1、开发环境的构成 编辑器:VI; 编译器:选择GNU C/C++编译器gcc; 调试器:应用广泛的gdb; 函数库:glibc ; 系统头文件:glibc_header; 2、在安装Linux时需要注意事项...) 是GNU推出的多平台编译器,以下是gcc支持编译的一些源文件的后缀及其解释 .c后缀 c语言源代码文件 .h后缀 是程序所包含的头文件 .o后缀 是编译后的目标文件 例:gcc -o hello...假如用户在安装过程中少装了这些包,就无法编译c源程序,这时候可以通过rpm包来迅速安装Linux的C开发语言环境的。...7、Linux下C程序开发过程: (1)使用vi工具编辑写源程序; (2)保存为*.c; (3)使用gcc编译成二进制可执行文件; (4).
字符串名和数组名表示的是代码块或数据块的首地址 serv_addr.sin_family = AF_INET; 1.给结构体成员赋值 char buffer[40]; 1.定义一个字符数组,字符数组实际上是一系列字符的集合,也就是字符串,在C语言中...数组的长度要比字符串的长度(字符串长度不包括 '\0')大1 server.c #include #include #include #include...str, sizeof(str)); //关闭套接字 close(clnt_sock); close(serv_sock); return 0; } client.c
本文以美团搜索实际场景下的案例,讲述在Linux系统下跨语言调用的实践,即开发一次C++语言的组件,其他语言通过跨语言调用技术调用C++组件。...++接口,因此对于C++语言实现的接口,必须转换为C语言实现。...在C语言中,函数签名即为代码函数的名称,而在C++语言中,因为需要支持函数重载,可能会有多个同名函数。...为了保证签名唯一,C++通过name mangling机制为相同名字不同实现的函数生成不同的签名,生成的签名会是一个像__Z4funcPN4printE这样的字符串,无法被dlsym识别(注:Linux...7 参考文献 JNI内存相关文档 JNI类型映射 JNA开源地址 Linux dlopen Linux dlclose Linux dlsym CPython源码 CPython中ctypes的介绍 CTypes
Linux系统下的多线程遵循POSIX线程接口,称为 pthread。编写Linux下的多线程程序,需要使用头文件pthread.h,连接时需要使用库libpthread.a。...顺便说一下,Linux 下pthread的实现是通过系统调用clone()来实现的。...clone()是 Linux所特有的系统调用,它的使用方式类似fork,关于clone()的详细情况,有兴趣的读者可以去查看有关文档说明。...另外,因为pthread的库不是linux系统的库,所以在进行编译的时候要加上-lpthread,否则编译不过,会出现下面错误 thread_test.c: 在函数 ‘create’ 中: thread_test.c...\n"); return -2; } printf("c->a = %d \n",c->a); printf("c->b = %s \n",c->b); sleep(1); return
领取专属 10元无门槛券
手把手带您无忧上云