您当前的位置:首页 > IT编程 > C++
| C语言 | Java | VB | VC | python | Android | TensorFlow | C++ | oracle | 学术与代码 | cnn卷积神经网络 | gnn | 图像修复 | Keras | 数据集 | Neo4j | 自然语言处理 | 深度学习 | 医学CAD | 医学影像 | 超参数 | pointnet | pytorch | 异常检测 | Transformers | 情感分类 | 知识图谱 |

自学教程:C++ write_inode函数代码示例

51自学网 2021-06-03 10:05:53
  C++
这篇教程C++ write_inode函数代码示例写得很实用,希望能帮到您。

本文整理汇总了C++中write_inode函数的典型用法代码示例。如果您正苦于以下问题:C++ write_inode函数的具体用法?C++ write_inode怎么用?C++ write_inode使用的例子?那么恭喜您, 这里精选的函数代码示例或许可以为您提供帮助。

在下文中一共展示了write_inode函数的25个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于我们的系统推荐出更棒的C++代码示例。

示例1: do_mkdir

void do_mkdir(){    struct inode cur_dir,new_dir;    char dirname[256];    struct dir_ent ent;    scanf("%s",dirname);    if(strcmp(dirname,".")==0 || strcmp(dirname,"..")==0)    {        printf("Error directory name./n");                return ;    }    get_inode(pwd,&cur_dir);          /*分配一个inode给新的目录*/    new_dir.i_num=alloc_inode();    new_dir.i_start_sect=alloc_data();        /*分配一个数据扇区*/    new_dir.i_nr_sects=1;        new_dir.i_pnum=pwd;    new_dir.i_mode=2;    new_dir.i_size=0;        //给新目录增加默认目录项    ent.i_num=pwd;    strcpy(ent.name,"..");    add_entry(&new_dir,&ent);    ent.i_num=new_dir.i_num;  strcpy(ent.name,".");    add_entry(&new_dir,&ent);       ent.i_num=new_dir.i_num;    strcpy(ent.name,dirname);         add_entry(&cur_dir,&ent);    //写入inode数组中    write_inode(pwd,&cur_dir);    write_inode(new_dir.i_num,&new_dir); }
开发者ID:wizardcypress,项目名称:fake-shell,代码行数:33,


示例2: main

int main(int argc, char **argv) {  int devfd;  // get the device from argv  if(argc != 2) {    fprintf(stderr, "need to pass in a device/n");    exit(1);  }  // open device  devfd = open_device(argv[1], O_WRONLY);  // find if there is enough space -- seek blocks * block size  verify_device_space(devfd);  // write the superblock  write_superblock(devfd);  // setup the inodes for /  write_inode(devfd, 3, 1);  // setup the inode for lost+found  write_inode(devfd, 2, 2);  // skip into file section  // write directories for / ., ..  struct rdfs_dirent *p = calloc(3, sizeof(struct rdfs_dirent));  struct rdfs_dirent *dirent = p;  p->d_inode = 1;  strcpy(p->d_name, ".");  p++;  p->d_inode = 1;  strcpy(p->d_name, "..");  p++;  p->d_inode = 2;  strcpy(p->d_name, "lost+found");  write_directory(devfd, dirent, 3, 0);  free(dirent);  // write directories for lost+found ., ..  p = calloc(2, sizeof(struct rdfs_dirent));  dirent = p;  p->d_inode = 2;  strcpy(p->d_name, ".");  p++;  p->d_inode = 1;  strcpy(p->d_name, "..");  write_directory(devfd, dirent, 2, 1);  free(dirent);  return 0;}
开发者ID:fr0stbyte,项目名称:rdfs,代码行数:52,


示例3: do_write

/* 将外部文件写入到镜像中 */void do_write(){    struct stat st;    struct inode cur_dir,new_file;    struct dir_ent ent;    char buf[SECTOR_SIZE+10];    int i;    FILE *fin;    char filename[16];    scanf("%s",filename);    if(stat(filename,&st)<0) {        printf("No such file./n");        return ;    }    fin=fopen(filename,"rb");    get_inode(pwd,&cur_dir);    new_file.i_num=alloc_inode();    new_file.i_pnum=pwd;    new_file.i_size=st.st_size;     new_file.i_mode=1; //标示为文件    ent.i_num=new_file.i_num;   strcpy(ent.name,filename);        add_entry(&cur_dir,&ent);        u32 last_sector=0,cur_sector;    u32 need=st.st_size/(SECTOR_SIZE-sizeof(u32))+1;    new_file.i_nr_sects=need;        //根据文件大小,逐个分配扇区来写入数据,并采用单链表方式连接各个扇区    for(i=0;i<need;i++)    {        cur_sector=alloc_data();        if(last_sector==0)  {            new_file.i_start_sect=cur_sector;        }else{ //上一个扇区到这个扇区的指针            fseek(fimg,last_sector*SECTOR_SIZE+SECTOR_SIZE-sizeof(u32),SEEK_SET);            fwrite(&cur_sector,sizeof(u32),1,fimg);        }        int nread=fread(buf,sizeof(char),SECTOR_SIZE-sizeof(u32),fin);        if(nread<0)  {            printf("Read file %s error./n",filename );            return ;        }        fseek(fimg,cur_sector*SECTOR_SIZE,SEEK_SET);        fwrite(buf,sizeof(char),nread,fimg);        last_sector=cur_sector;    }    fseek(fimg,last_sector*SECTOR_SIZE+SECTOR_SIZE-sizeof(u32),SEEK_SET);    u32 tmp=0;    fwrite(&tmp,sizeof(u32),1,fimg);    write_inode(new_file.i_num,&new_file);    write_inode(cur_dir.i_num,&cur_dir);}
开发者ID:wizardcypress,项目名称:fake-shell,代码行数:52,


示例4: delete_file

longdelete_file(ext2_filsys fs, ext2_ino_t inode){  struct ext2_inode inode_buf;  long retval;  if ((retval = read_inode(fs, inode, &inode_buf)))    {      fprintf(stderr, "%s/n", error_message(retval));      return(retval);    }  inode_buf.i_dtime = time(NULL);  if ((retval = write_inode(fs, inode, &inode_buf)))    {      fprintf(stderr, "%s/n", error_message(retval));      return(retval);    }  if ((retval = ext2fs_block_iterate(fs, inode, 0, NULL,                                     release_blocks_proc, NULL)))    {      fprintf(stderr, "%s/n", error_message(retval));      return(retval);    }  ext2fs_inode_alloc_stats(fs, inode, -1);  return(0);}
开发者ID:er13,项目名称:e2tools,代码行数:30,


示例5: emofs_link

万事OK自学网:51自学网_软件自学网_CAD自学网自学excel、自学PS、自学CAD、自学C语言、自学css3实例,是一个通过网络自主学习工作技能的自学平台,网友喜欢的软件自学网站。