linux 檔案讀檔問題 |
缺席
|
gundam
一般會員 發表:4 回覆:5 積分:1 註冊:2003-02-14 發送簡訊給我 |
小弟 寫了一個程式 程式會自己判讀,有沒有這個檔案,如果沒有就自己生一個檔案
但是如果這個檔案是從別的地方copy 過來的檔案檔名一樣,只是內容不一樣,檔案權限 開到最大 777 在open檔案還是正常的 但到 ret=read() 檔案時ret會回傳-1 代表讀檔有問題,可是程式自己生的檔案就不會有這個問題可以正常讀出 這個是讀檔的副程式 static int check_conf(void) { int data[7]; char *buffer; int ret; struct stat s; /* check conf file */ if (stat(cf_file, &s) == 0) { /* conf file already existed */ cf_fd = open(cf_file, O_RDWR); if (cf_fd >= 0) { lseek(cf_fd,0,SEEK_SET); buffer = calloc(1, s.st_size 1); read(cf_fd, buffer, s.st_size); ret = sscanf(buffer, "%d\n%d\n%d\n%d\n%d\n%d\n%d", &data[0], &data[1], &data[2], &data[3], &data[4], &data[5], &data[6]); log_write("read cf_file\n"); if (ret == 7) { //程式會在這裡出現問題 但如果是程式自己產生的檔案就不會有這個問題<---------------- log_write("read ok \n"); free(buffer); /* write to driver */ write_conf(data); close(cf_fd); return 1; } log_write("Failed to get datas from conf file: %d\n", ret); free(buffer); close(cf_fd); } } return 0; } 這是要讀的檔案 程式自己產生的檔案也是這種格式只是數值不一樣 aaa.txt 共7行 -141000 2200 1668600 -1080 90120 -87567480 -176452 謝謝 |
rick060
高階會員 發表:2 回覆:112 積分:217 註冊:2009-11-17 發送簡訊給我 |
|
gundam
一般會員 發表:4 回覆:5 積分:1 註冊:2003-02-14 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |