學習Linux,因為Linux是一個類似UNIX的作業系統。我做的第一件事是在UNIX上閱讀整個Wikipedia頁面,讀了1974年由丹尼斯·裡奇(Dennis Ritchie)和肯·湯普森(Ken Thompson)撰寫的這篇原始論文。
https://people.eecs.berkeley.edu/~brewer/cs262/unix.pdf
對於專案,編寫第一個C程式,一個可以反轉文字檔案內容的程式。由於這只是cat的反向版本,因此將其稱為recat程式。
#include <stdlib.h>#include <stdio.h> /* * 反轉字串buffer */void reverse(char* buffer, int bufferLen) { for (int i = 0; i < bufferLen / 2; i++) { char temp = buffer[i]; buffer[i] = buffer[bufferLen -i -1]; buffer[bufferLen -i -1] = temp; }}int main(int argc, char* argv[]) { if (argc != 1) { FILE *fileptr; char *buffer; long fileLen; fileptr = fopen(argv[1], "rb"); fseek(fileptr, 0, SEEK_END);//指標移到末位 fileLen = ftell(fileptr);//得到從開頭的偏移位元組數 rewind(fileptr);//重新移到開頭 buffer = (char *)malloc(fileLen * sizeof(char));//分配一塊等於檔案長度的處理區 fread(buffer, fileLen, 1, fileptr); fclose(fileptr); reverse(buffer, fileLen);//反正字串 printf("%.*s",fileLen,buffer); } else { printf("You need to supply a filename"); } exit(0);}
最新評論