對於我而言,我得到了這個「開發C程序,將輸入文件複製到輸出文件並計算讀/寫操作的次數。」我知道如何執行將輸入文件複製到輸出文件的操作,但我不完全確定如何跟蹤執行了多少個讀/寫操作。該程序應該使用不同的緩衝區大小重複複製,並輸出每個緩衝區大小執行的讀/寫操作的數量列表。我只是不確定如何做計數r/w操作的部分。怎麼能這樣做呢?先謝謝你。如何跟蹤執行了多少次讀/寫操作...?
這裏是我當前的代碼(更新):
#include <stdio.h>
#include "apue.h"
#include <fcntl.h>
#define BUFFSIZE 1
int main(void)
{
int n;
char buf[BUFFSIZE];
int input_file;
int output_file;
int readCount = 0;
int writeCount = 0;
input_file = open("test.txt", O_RDONLY);
if(input_file < 0)
{
printf("could not open file.\n");
}
output_file = creat("output.txt", FILE_MODE);
if(output_file < 0)
{
printf("error with output file.\n");
}
while((n = read(input_file, buf, BUFFSIZE)) > 0)
{
readCount++;
if(write(output_file, buf, n) == n){
writeCount++;
}else{
printf("Error writing");
}
}
if(n < 0)
{
printf("reading error");
}
printf("read/write count: %d\n", writeCount + readCount);
printf("read = %d\n", readCount);
printf("write = %d\n", writeCount);
}
和文本文件:測試一二
結果是:
read/write count: 26
read = 13
write = 13
Process returned 0 (0x0) execution time : 0.003 s
Press ENTER to continue.
我在想,寫將是12 ...但我不確定...
代碼丟失的#include參數 –
user3629249
2015-03-13 18:49:04
張貼代碼失敗後,所有的讀取,關閉文件/寫操作完成。 – user3629249 2015-03-13 18:57:44
main()函數聲明返回一個int,但是代碼缺少'返回值';語句 – user3629249 2015-03-13 18:58:38