未保存文档 1

来自「在Linux下实现文件的拷贝」· 代码 · 共 48 行

TXT
48
字号
asmlinkage int sys_mycopy(char *string1,char *string2){int source, target;int bytes_read, bytes_write;char buffer[1024];char *ptr;/* 打开源文件 */if( ( source = sys_open( string1, O_RDONLY ) == -1 ){  printk( "Open %s Error!\n", string1 );  sys_exit(1);}/* 创建目的文件 */if( ( target = sys_open (string2, O_WRONLY|O_CREAT, S_IRUSR|S_IWUSR ) ) == -1 ){  printk("Open %s Error!\n", string2 );  sys_exit(1);}while( bytes_read = sys_read( source, buffer, 1024 ) ){                                                                                                                        if( ( bytes_read==-1 ) && ( errno!=EINTR))  /* 一个致命的错误发生了 */      break;    else if(bytes_read>0)      {      ptr = buffer;      while( bytes_write = sys_write ( target, ptr, bytes_read))               {          if( ( bytes_write == -1 ) && ( errno != EINTR ) )             break;            /* 一个致命错误发生了 */          else if(bytes_write==bytes_read) break;/* 写完了所有读的字节 */          else if(bytes_write>0) /* 只写了一部分,继续写 */                          {            ptr += bytes_write;            bytes_read -= bytes_write;                          }               }     if( bytes_write == -1 )/* 写的时候发生的致命错误 */       break;     }}sys_close( source );sys_close( target );return 0;}

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?