Linux 文件编程、时间编程基本函数

Stella981
• 阅读 760

文件编程

  文件描述符 fd --->>>数字(文件的身份证,代表文件身份),通过 fd 可找到正在操作或需要打开的文件。

基本函数操作:

1)打开/创建文件

int open (const char* pathname, int flag, mode_t mode)
    成功:返回文件的fd        失败:返回-1
    文件路径    打开标志    文件权限
eg: fd = open("/home/S3-app/test.c", O_RDWR|O_CREAT, 0777);

2)读文件

ssize_t read(int fd, void *buf, ssize_t count)
    成功:返回读取字节数    失败:-1
    要读取的文件fd    读取的数据存到buf指向的空间    希望读取的字节数
    int fd;    char buf[1024];
eg: read(fd, buf, 1024);

3)写文件

ssize_t write(int fd,const void *buf, ssize_t count)
    成功:返回写入字节数    失败:-1
    要写入的文件fd    指向要写入的数据的位置地址    希望写入的字节数
    int fd;    char buf[1024];
eg: write(fd, "hello", 6);

  发送、接收文件

//发送文件内容    先把要发送d 文件数据读到buf中->再通过buf写入发送的目标文件中
            while((count=read(fd,(void *)buf,1024))>0)    //buf:读取来的数据存到buf指向的空间  希望读取的字节数 返回读取的字节数
            {
                 write(new_fd, &buf,count);   //&buf->整个数据数组
            }        
            close(fd);    

//接收文件内容    先把要接收的数据读到buf中->再通过buf写入接收文件中
            while((count=read(new_fd,(void *)buf,1024))>0)//buf:读取来的数据存到buf指向的空间  希望读取的字节数 返回读取的字节数
            {
                write(fd, &buf,count);    //&buf->整个数据数组         tmpsize += count;          if(tmpsize == filesize) break;            }          clode(fd);

Linux时间编程

Linux 文件编程、时间编程基本函数

/*  time_t time(NULL)    日历时间--从标准时间到现在的秒数*/
time_t ctime = time(NULL);   //不保存数值地址
printf("%d",ctime);   int型

/*  struct tm *gmtime(time_t *ct)    格林威治时间--世界标准时间*/
/*  struct tm *localtime(time_t *ct)    本地时间    (同上)*/
struct tm *tm;        //结构体
tm = gmtime(&ctime);
printf("%d:%d",tm->tm_hour,tm->tm_min);  struct tm*结构体

/*   char* asctime(const struct tm *tm)      以字符串方式显示 */
char* asc;
asc = asctime(tm);
printf("%s", asc);   指针字符串
点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
半臻 半臻
3年前
Python基础8——文件操作
16文件操作16.1文件操作的基本概念文件操作的步骤1.打开文件2.读、写文件3.关闭文件open函数,创建一个file对象,默认是以只读的方式打开read方法:一次性读取文件的所有内容write方法:将指定内容写入文件close方法:关闭文件file对象的属性flie.name文件的名称file.mode文件的访问模式file.closed
皕杰报表之UUID
​在我们用皕杰报表工具设计填报报表时,如何在新增行里自动增加id呢?能新增整数排序id吗?目前可以在新增行里自动增加id,但只能用uuid函数增加UUID编码,不能新增整数排序id。uuid函数说明:获取一个UUID,可以在填报表中用来创建数据ID语法:uuid()或uuid(sep)参数说明:sep布尔值,生成的uuid中是否包含分隔符'',缺省为
待兔 待兔
5个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Java修道之路,问鼎巅峰,我辈代码修仙法力齐天
<center<fontcolor00FF7Fsize5face"黑体"代码尽头谁为峰,一见秃头道成空。</font<center<fontcolor00FF00size5face"黑体"编程修真路破折,一步一劫渡飞升。</font众所周知,编程修真有八大境界:1.Javase练气筑基2.数据库结丹3.web前端元婴4.Jav
Wesley13 Wesley13
3年前
FLV文件格式
1.        FLV文件对齐方式FLV文件以大端对齐方式存放多字节整型。如存放数字无符号16位的数字300(0x012C),那么在FLV文件中存放的顺序是:|0x01|0x2C|。如果是无符号32位数字300(0x0000012C),那么在FLV文件中的存放顺序是:|0x00|0x00|0x00|0x01|0x2C。2.  
Stella981 Stella981
3年前
HIVE 时间操作函数
日期函数UNIX时间戳转日期函数: from\_unixtime语法:   from\_unixtime(bigint unixtime\, string format\)返回值: string说明: 转化UNIX时间戳(从19700101 00:00:00 UTC到指定时间的秒数)到当前时区的时间格式举例:hive   selec
Stella981 Stella981
3年前
Linux的文件描述符
(1).文件描述符的定义  文件描述符是内核为了高效管理已被打开的文件所创建的索引,用于指向被打开的文件,所有执行I/O操作的系统调用都通过文件描述符;文件描述符是一个简单的非负整数,用以表明每个被进程打开的文件。程序刚刚启动时,第一个打开的文件是0,第二个是1,以此类推。也可以理解为文件的身份ID。  用户通过操作系统处理信息的过程中,使用的交互设
Wesley13 Wesley13
3年前
Java多线程导致的的一个事物性问题
业务场景我们现在有一个类似于文件上传的功能,各个子站点接受业务,业务上传文件,各个子站点的文件需要提交到总站点保存,文件是按批次提交到总站点的,也就是说,一个批次下面约有几百个文件。      考虑到白天提交这么多文件会影响到子站点其他系统带宽,我们将分站点的文件提交到总站点这个操作过程独立出来,放到晚上来做,具体时间是晚上7:00到早上7:00。
Python进阶者 Python进阶者
11个月前
Excel中这日期老是出来00:00:00,怎么用Pandas把这个去除
大家好,我是皮皮。一、前言前几天在Python白银交流群【上海新年人】问了一个Pandas数据筛选的问题。问题如下:这日期老是出来00:00:00,怎么把这个去除。二、实现过程后来【论草莓如何成为冻干莓】给了一个思路和代码如下:pd.toexcel之前把这