亚洲av成人无遮挡网站在线观看,少妇性bbb搡bbb爽爽爽,亚洲av日韩精品久久久久久,兔费看少妇性l交大片免费,无码少妇一区二区三区

  免費(fèi)注冊(cè) 查看新帖 |

Chinaunix

  平臺(tái) 論壇 博客 文庫(kù)
最近訪問板塊 發(fā)新帖
查看: 2885 | 回復(fù): 9
打印 上一主題 下一主題

可能是python(win)的一處Bug吧? [復(fù)制鏈接]

論壇徽章:
0
跳轉(zhuǎn)到指定樓層
1 [收藏(0)] [報(bào)告]
發(fā)表于 2010-06-01 03:24 |只看該作者 |倒序?yàn)g覽
本帖最后由 kgd7558 于 2010-06-01 03:32 編輯

最近遇到一個(gè)問題,追了好久,如果我用法沒錯(cuò)的話,可能是python的Bug吧?具體如下:

Python 2.6 final
Release date: 01-Oct-2008

1、封的一個(gè)二進(jìn)制文件讀寫類,功能比較簡(jiǎn)單
2、沒有涉及到多線程之類,沒有互斥影響
3、所有地址相關(guān)整型都用long型,(int型也試過,也有問題)
4、在寫入的文件大小比較大時(shí),比如5G情況下,第一次可能可以正常寫入
5、關(guān)鍵是在覆蓋寫入時(shí)(先seek,再write),seek正常,但write可能無返回
6、Linux下很正常,只是windows下偶爾出現(xiàn),在NTFS以及FAT32上都會(huì)出現(xiàn)。
7、各位有遇到過沒?
  1. import os, threading

  2. class FileIO():

  3.     def __init__(self, path):
  4.         self.path = path
  5.         self.fd = None
  6.         self.__lock = threading.RLock()
  7.         if not self.open():
  8.             print('open file(%s) FAILED' % self.path)

  9.     def __del__(self):
  10.         self.close()

  11.     def lock(self):
  12.         self.__lock.acquire()
  13.    
  14.     def unlock(self):
  15.         self.__lock.release()

  16.     def open(self):
  17.         if self.fd:
  18.             return True
  19.         try:
  20.             if os.path.isfile(self.path):
  21.                 self.fd = open(self.path, 'r+b')
  22.             else:
  23.                 self.fd = open(self.path, 'w+b')
  24.             return True
  25.         except:
  26.             print('open device %s FAILED' % self.path)
  27.         return False

  28.     def close(self):
  29.         if self.fd:
  30.             self.fd.close()
  31.             self.fd = None

  32.     def get_size(self):
  33.         try:
  34.             stat = os.stat(self.path)
  35.             return stat.st_size
  36.         except:
  37.             print('get file(%s) status FAILED.' % self.path);
  38.             return 0

  39.     def write(self, offset, buf):
  40.         try:
  41.             self.fd.seek(offset, os.SEEK_SET)
  42.             self.fd.write(buf)
  43.             self.fd.flush()
  44.             return True
  45.         except:
  46.             print('write buffer FAILED(offset=%d, length=%d)' % (offset, len(buf)))
  47.             return False

  48.     def read(self, offset, length):
  49.         try:
  50.             self.fd.seek(offset, os.SEEK_SET)
  51.             buf = self.fd.read(length)
  52.             if len(buf) != length:
  53.                 print('read buffer FAILED(offset=%d, length=%d)' % (offset, length))
  54.                 buf = None
  55.             return buf
  56.         except:
  57.             print('read buffer FAILED(offset=%d, length=%d)' % (offset, length))
  58.             return None
  59.         
  60.     def flush(self):
  61.         try:
  62.             self.fd.flush()
  63.         except:
  64.             print('flush FAILED')
復(fù)制代碼

論壇徽章:
0
2 [報(bào)告]
發(fā)表于 2010-06-01 08:51 |只看該作者
本帖最后由 luffy.deng 于 2010-06-01 08:56 編輯

windows  fat32  沒有4G文件大小限制?

論壇徽章:
0
3 [報(bào)告]
發(fā)表于 2010-06-01 09:20 |只看該作者
回復(fù) 2# luffy.deng

我測(cè)試時(shí),F(xiàn)AT32中,讀寫不超過4G,在NTFS中,大于4G

論壇徽章:
0
4 [報(bào)告]
發(fā)表于 2010-06-01 10:21 |只看該作者
fat32是有4g的限制

論壇徽章:
0
5 [報(bào)告]
發(fā)表于 2010-06-01 10:23 |只看該作者
應(yīng)該是操作系統(tǒng)底層支持的問題,不是語言本身的問題吧。

論壇徽章:
0
6 [報(bào)告]
發(fā)表于 2010-06-01 11:26 |只看該作者
不太確定你所說的“ 但write可能無返回” 是什么意思? 是被阻塞在write調(diào)用上么?

論壇徽章:
0
7 [報(bào)告]
發(fā)表于 2010-06-01 12:31 |只看該作者
回復(fù) 5# 2gua
我的意思是python執(zhí)行環(huán)境實(shí)現(xiàn)代碼可能有問題,語言本身應(yīng)該沒什么問題

論壇徽章:
0
8 [報(bào)告]
發(fā)表于 2010-06-01 12:32 |只看該作者
回復(fù) 6# luffy.deng

是阻塞在write調(diào)用上

論壇徽章:
0
9 [報(bào)告]
發(fā)表于 2010-06-01 14:57 |只看該作者
回復(fù)  luffy.deng

是阻塞在write調(diào)用上
kgd7558 發(fā)表于 2010-06-01 12:32


按理說不會(huì)。能不能看一下你是怎么調(diào)用你自己封的 open   write的?另外是如何判斷出來阻塞在write上的?

論壇徽章:
0
10 [報(bào)告]
發(fā)表于 2010-06-05 01:20 |只看該作者
回復(fù) 9# luffy.deng
調(diào)用很簡(jiǎn)單,傳一個(gè)偏移與一個(gè)串下去,
write上下分別l加print進(jìn)行調(diào)試,

1、如果有異常,一定會(huì)返回
2、write只打上邊print的信息,下邊的print信息沒打
您需要登錄后才可以回帖 登錄 | 注冊(cè)

本版積分規(guī)則 發(fā)表回復(fù)

  

北京盛拓優(yōu)訊信息技術(shù)有限公司. 版權(quán)所有 京ICP備16024965號(hào)-6 北京市公安局海淀分局網(wǎng)監(jiān)中心備案編號(hào):11010802020122 niuxiaotong@pcpop.com 17352615567
未成年舉報(bào)專區(qū)
中國(guó)互聯(lián)網(wǎng)協(xié)會(huì)會(huì)員  聯(lián)系我們:huangweiwei@itpub.net
感謝所有關(guān)心和支持過ChinaUnix的朋友們 轉(zhuǎn)載本站內(nèi)容請(qǐng)注明原作者名及出處

清除 Cookies - ChinaUnix - Archiver - WAP - TOP