Re: [問題]請問開檔問題 關於dev
※ 引述《RiverJackson (JACK)》之銘言:
: 請問一下
: #include <stdio.h>
: #include <string.h>
: int main(int argc, char *argv[])
: {
: char buf[100];
: FILE *fp=fopen("qq.txt", "a");
: fseek(fp, 50, SEEK_SET);
: 這裡的seek_set是指 檔案開頭呢 還是檔案最後 因為用'a' mode open file
: memset(buf, '1', 100);
: fwrite(buf, 1, 5, fp);
: fclose(fp);
: return 0;
: }
: 這裡如果qq.txt已經存在的話 fseek裡面的50好像不管設多少
: fp都是指到qq.txt內容的最後面 假如qq.txt 內容是 ttttt好了
: 程式碼執行後就會變 ttttt11111 所以那個50的指定是沒用的???
: 目的是想說 假設qq.txt改為mtdblock/1 如果執行此程式 是不是就會
: 直接把1寫到mtdblock/2 而且是從mtdblock/2的開頭開始寫 部會從第50開始寫?
: 還是我觀念有錯誤
: 這樣講好了 我的目的就是 :
: 假設mtdblock/1 範圍是從1到1000好了, 我想在此範圍裏面的500到600
: 全部設為0xff的話 該怎麼做呢?? 然後又不會影響其他範圍內容??
: Thanks~ ^^
因為最近剛好有看到相關的 code
所以說說看比較好的作法
我還不大了解 mtd 是什麼
不過可以參考看看這種作法 , 因為看你的文章好像只需用到 binary 操作
你可以試著將檔案開成 binary mode
然後用 read 讀入一個 char array
再直接對 array 操作(memset)
然後再開啟 mtd , (用 wb 模式 , 開啟後會將原來檔案設為零)
或試用可以複寫的 mode 用 write 寫回就可以了
參考看看
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.116.238.93
推
05/05 22:04, , 1F
05/05 22:04, 1F
推
05/08 12:36, , 2F
05/08 12:36, 2F
推
05/08 23:00, , 3F
05/08 23:00, 3F
討論串 (同標題文章)
LinuxDev 近期熱門文章
PTT數位生活區 即時熱門文章