Массив MSR оффшорных PM хранится здесь для SnB, другие архитектуры близки.
Макрос INTEL_UEVENT_EXTRA_REG
здесь здесь , и он просто устанавливает msr
для второго параметра, config_mask
- 0x000000FFULL
и valid_mask
для третьего параметра (первый - событие для запрограммируйте связанный обычный PMR с).
Значения Так что это в основном цикл, проверяющий пару битовых масок, пока не будет найдена совместимая PM MSR, я думаю, вы можете просто пропустить это и посмотреть на значения, хранящиеся в массиве 1 sup> Поскольку макрос, определенный для создания значений в snb_hw_cache_extra_regs
- это то, что будет записано в выбранной PM MSR 1 sup>.
Этот массив ищется здесь и используется здесь , чтобы выбрать первое совпадение PM MSR, где config
arg происходит из массива hw_cache_event_ids
. [ 1118] snb_hw_cache_extra_regs
. snb_hw_cache_extra_regs
, никогда не используется повторно в источнике, и значения отображаются непосредственно в схему MSR, задокументированную в руководствах Intel, я не стал потрудитесь проверить это утверждение.
Python 2
with open("datafile") as myfile:
head = [next(myfile) for x in xrange(N)]
print head
Python 3
with open("datafile") as myfile:
head = [next(myfile) for x in range(N)]
print(head)
Другой способ (как Python 2, так и 3)
from itertools import islice
with open("datafile") as myfile:
head = list(islice(myfile, N))
print head
Это работает на Python 2 & 3:
from itertools import islice
with open('/tmp/filename.txt') as inf:
for line in islice(inf, N, N+M):
print(line)
Если вы хотите что-то, что, очевидно (без поиска эзотерических вещей в руководствах), работает без импорта и try / except и работает на значительном диапазоне версий Python 2.x (от 2.2 до 2.6):
def headn(file_name, n):
"""Like *x head -N command"""
result = []
nlines = 0
assert n >= 1
for line in open(file_name):
result.append(line)
nlines += 1
if nlines >= n:
break
return result
if __name__ == "__main__":
import sys
rval = headn(sys.argv[1], int(sys.argv[2]))
print rval
print len(rval)
Нет специального метода для чтения количество строк, отображаемых файловым объектом.
Думаю, проще всего было бы следующее:
lines =[]
with open(file_name) as f:
lines.extend(f.readline() for i in xrange(N))
N = 10
file = open("file.txt", "a")#the a opens it in append mode
for i in range(N):
line = file.next().strip()
print line
file.close()