文件I/O 2024.8.9

1:realloc()的使用

指针名=(数据类型*)realloc(要改变内存大小的指针名,新的大小)

头文件:#include <stdlib.h> 有些编译器需要#include <malloc.h>,在TC2.0中可以使用alloc.h头文件

功能:先判断当前的指针是否有足够的连续空间,如果有,扩大mem_address指向的地址,并且将mem_address返回,如果空间不够,先按照newsize指定的大小分配空间,将原有数据从头到尾拷贝到新分配的内存区域,而后释放原来mem_address所指内存区域(注意:原来指针是自动释放,不需要使用free),同时返回新分配的内存区域的首地址。即重新分配存储器块的地址。

返回值:如果重新分配成功则返回指向被分配内存的指针,否则返回空指针NULL。

注意:这里原始内存中的数据还是保持不变的。当内存不再使用时,应使用free()函数将内存块释放。

出处:realloc() 用法详解_realloc用法-优快云博客

2:尝试用fread去实现fgetc函数和fgets函数

fgetc:获取指定文件的一个字符       int fgetc(FILE *stream);

fp = fopen("file.txt","r");
   if(fp == NULL) 
   {
      perror("打开文件时发生错误");
      return(-1);
   
char my_fgetc(FILE *fp)
{
    char c;
    if (fread(&c, sizeof(char), 1, fp)!= 1) {
        return EOF;
    }
    return c;
}

void my_fputc(FILE *fp, char c)
{
    fwrite(&c, sizeof(char), 1, fp);
}

void my_fgets(char *s, FILE *fp)
{
    int i=0;
    char *buf = calloc(1024, sizeof(char));
    fread(buf,1,1024,fp);
    while(buf[i]!='\n')
    {
        i++;
    }
    strncpy(s,buf,i);
    s[i]='\0';                                           
    free(buf);
}

void my_fputs(char *s, FILE *fp)
{
    fwrite(s,1,strlen(s),fp);
    fwrite("\n",1,1,fp);
}   

root@kubevirt1910b:/etc/apt# cat sources.list # 华为开源镜像站 - Ubuntu 22.04 (jammy) arm64 源 deb https://mirrors.huaweicloud.com/ubuntu/ jammy main restricted universe multiverse deb-src https://mirrors.huaweicloud.com/ubuntu/ jammy main restricted universe multiverse deb https://mirrors.huaweicloud.com/ubuntu/ jammy-updates main restricted universe multiverse deb-src https://mirrors.huaweicloud.com/ubuntu/ jammy-updates main restricted universe multiverse deb https://mirrors.huaweicloud.com/ubuntu/ jammy-backports main restricted universe multiverse deb-src https://mirrors.huaweicloud.com/ubuntu/ jammy-backports main restricted universe multiverse deb https://mirrors.huaweicloud.com/ubuntu/ jammy-security main restricted universe multiverse deb-src https://mirrors.huaweicloud.com/ubuntu/ jammy-security main restricted universe multiverse root@kubevirt1910b:/etc/apt# sudo sed -i &#39;s|http://mirrors.huaweicloud.com|https://mirrors.aliyun.com|g&#39; /etc/apt/sources.list root@kubevirt1910b:/etc/apt# sudo apt-get update Ign:1 https://download.docker.com/linux/ubuntu jammy InRelease Hit:2 https://mirrors.aliyun.com/kubernetes/apt kubernetes-xenial InRelease Hit:3 https://download.opensuse.org/repositories/devel:/kubic:/libcontainers:/stable/xUbuntu_22.04 InRelease Ign:1 https://download.docker.com/linux/ubuntu jammy InRelease Ign:1 https://download.docker.com/linux/ubuntu jammy InRelease Err:1 https://download.docker.com/linux/ubuntu jammy InRelease Could not handshake: Error in the pull function. [IP: 3.170.229.111 443] Get:4 https://mirrors.huaweicloud.com/ubuntu jammy InRelease [270 kB] Get:5 https://mirrors.huaweicloud.com/ubuntu jammy-updates InRelease [128 kB] Get:6 https://mirrors.huaweicloud.com/ubuntu jammy-backports InRelease [127 kB] Get:7 https://mirrors.huaweicloud.com/ubuntu jammy-security InRelease [129 kB] Get:8 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse Sources [304 kB] Get:9 https://mirrors.huaweicloud.com/ubuntu jammy/restricted Sources [23.7 kB] Get:10 https://mirrors.huaweicloud.com/ubuntu jammy/main Sources [1,340 kB] Get:11 https://mirrors.huaweicloud.com/ubuntu jammy/universe Sources [17.8 MB] Get:12 https://mirrors.huaweicloud.com/ubuntu jammy/main amd64 Packages [1,395 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Get:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages [1,369 kB] Ign:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Get:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages [19.6 kB] Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Get:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages [13.9 MB] Get:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages [13.9 MB] Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Get:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages [184 kB] Get:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages [184 kB] Get:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages [184 kB] Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Ign:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Get:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages [1,259 kB] Get:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages [1,259 kB] Get:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages [1,259 kB] Get:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages [1,259 kB] Get:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages [1,259 kB] Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Get:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages [38.6 kB] Get:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages [38.6 kB] Get:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages [38.6 kB] Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Ign:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Ign:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Ign:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Ign:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Ign:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Ign:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Ign:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Ign:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Ign:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Ign:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Ign:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Ign:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Ign:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Ign:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Ign:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Ign:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Ign:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Ign:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Err:13 https://mirrors.huaweicloud.com/ubuntu jammy/main arm64 Packages 404 Not Found [IP: 124.70.61.162 443] Ign:48 https://mirrors.huaweicloud.com/ubuntu jammy/restricted arm64 Packages Ign:55 https://mirrors.huaweicloud.com/ubuntu jammy/universe arm64 Packages Ign:58 https://mirrors.huaweicloud.com/ubuntu jammy/multiverse arm64 Packages Err:62 https://mirrors.huaweicloud.com/ubuntu jammy-updates/main arm64 Packages 404 Not Found [IP: 124.70.61.162 443] Ign:63 https://mirrors.huaweicloud.com/ubuntu jammy-updates/restricted arm64 Packages Ign:64 https://mirrors.huaweicloud.com/ubuntu jammy-updates/universe arm64 Packages Ign:70 https://mirrors.huaweicloud.com/ubuntu jammy-updates/multiverse arm64 Packages Err:74 https://mirrors.huaweicloud.com/ubuntu jammy-backports/main arm64 Packages 404 Not Found [IP: 124.70.61.162 443] Ign:75 https://mirrors.huaweicloud.com/ubuntu jammy-backports/universe arm64 Packages Err:76 https://mirrors.huaweicloud.com/ubuntu jammy-security/main arm64 Packages 404 Not Found [IP: 124.70.61.162 443] Ign:77 https://mirrors.huaweicloud.com/ubuntu jammy-security/restricted arm64 Packages Ign:78 https://mirrors.huaweicloud.com/ubuntu jammy-security/universe arm64 Packages Ign:79 https://mirrors.huaweicloud.com/ubuntu jammy-security/multiverse arm64 Packages Reading package lists... Done W: Failed to fetch https://download.docker.com/linux/ubuntu/dists/jammy/InRelease Could not handshake: Error in the pull function. [IP: 3.170.229.111 443] E: Failed to fetch https://mirrors.huaweicloud.com/ubuntu/dists/jammy/main/binary-arm64/Packages 404 Not Found [IP: 124.70.61.162 443] E: Failed to fetch https://mirrors.huaweicloud.com/ubuntu/dists/jammy-updates/main/binary-arm64/Packages 404 Not Found [IP: 124.70.61.162 443] E: Failed to fetch https://mirrors.huaweicloud.com/ubuntu/dists/jammy-backports/main/binary-arm64/Packages 404 Not Found [IP: 124.70.61.162 443] E: Failed to fetch https://mirrors.huaweicloud.com/ubuntu/dists/jammy-security/main/binary-arm64/Packages 404 Not Found [IP: 124.70.61.162 443] W: Some index files failed to download. They have been ignored, or old ones used instead. 下载ubuntu默认源
11-04
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值