📄 cat.c
字号:
#include <stdio.h>
#include "filesys.h"
cat (char* file_name)
{
unsigned int no_file, size;
unsigned int nblock, nblock_off;
struct inode *inode;
unsigned int i, j;
char ch;
if ( ! (no_file = namei(file_name)) ) {
printf(">file not exist!\n");
return;
}
inode = iget(no_file);
if (inode->di_mode & DIDIR) {
printf(">can't use this command on dirs\n");
return;
}
nblock = inode->di_size / BLOCKSIZ;
nblock_off = inode->di_size % BLOCKSIZ;
printf("file contents:\n");
for (i = 0; i < nblock; ++i) {
fseek(fd,DATASTART+BLOCKSIZ*inode->di_addr[i],SEEK_SET);
for (j = 0; j < BLOCKSIZ; ++j) {
ch = fgetc(fd);
if ( isgraph(ch) ) printf("%c", ch);
else
printf(".");
}
}
fseek(fd,DATASTART+BLOCKSIZ*inode->di_addr[i],SEEK_SET);
for (j = 0; j < nblock_off; ++j) {
ch = fgetc(fd);
printf("%c", ch);
}
printf("\n");
}
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -