首页 > 解决方案 > 写入文件会出现随机字符,为什么?

问题描述

注意:我正在使用 linux(客户端/服务器),这就是我使用 strcpy 的原因。

我有一个包含元素的链表。

我已经实现了一个注册和登录表单。

注册功能工作正常,我将列表的每个元素都保存到文件中。即使登录功能也可以正常工作,主要问题是:在登录功能之后,我正在调用aggiornamento_file(...),因为我想在登录后更新一些信息。调用该函数时,文件会更新,并且我确实会在文件末尾获得随机字符。

我究竟做错了什么?

void aggiornamento_file(struct utente *top){
    char username[MAX], password[MAX], gettoni[MAX], stato[MAX]="";
    int fd;
    int checking;

    fd = open("utenti.txt", O_WRONLY, S_IRUSR | S_IWUSR);
    if(fd==-1){
        perror("ERROR apertura file utenti!");
        exit(1);
    }else{
        while(top!=NULL){
            strcpy(username, top->username);
            strcpy(password, top->password);
            sprintf(gettoni, "%d", top->gettoni);
            printf("gettoni %s\n", gettoni);
            strcpy(stato, top->stato);

            size_t us = strlen(username);
            write(fd, username, us);
            write(fd, "\t", 1);

            size_t pa = strlen(password);
            write(fd, password, pa);
            write(fd, "\t", 1);

            size_t ge = strlen(gettoni);
            write(fd, gettoni, ge);
            write(fd, "\t", 1);

            size_t st = strlen(stato);
            write(fd, stato, st); 
            write(fd, "\n", 1);

            top=top->next;
        }           

    }
    close(fd);
    return;

}

提前感谢大家的时间

标签: clinux

解决方案


推荐阅读