Почему открытие файла с TCL работает на LINUX, но не на Windows? - PullRequest
0 голосов
/ 14 сентября 2018

Я запускаю сценарий TCL с Pointwise, чтобы сгладить сетку, и мне нужно увидеть построенную переменную поля.Для построения графика я должен использовать второй код, в данном случае Tecplot.Однако, чтобы получить данные из Pointwise, я должен использовать puts и канал ввода / вывода.Мой код выглядит следующим образом:

proc GetIJCellSizeLimits {dom} {

    global mincell cwd

    set io [open cwd/mincell.dat {RDWR CREAT}]

    set iPts [lindex [$dom getDimensions] 0]
    set jPts [lindex [$dom getDimensions] 1]
    set numPts [expr {$iPts * $jPts}]

    set points [Range 1 $numPts]
    set minCell 1000.0
    set maxCell 0.0
    set rmsCell 0.0
    set numCells 0

    foreach pnt $points {
    ...
    }
    puts $io "$xpt $ypt $zpt $mincell($pnt)"
    flush  $io
    close $io
}

... - это набор вычислений для оценки статистики меша и определения минимального размера ячейки, прикрепленной к точке $pnt, для сохранения для последующего использования.и для оценки выходных данных, поскольку сетка превышает 1000 точек.

Каждый раз, когда я пытаюсь открыть файл, используя те же конструкции, что и в LINUX, платформа Windows сообщает, что не удалось открыть "cwdmincell.dat ": в доступе отказано .Как открыть файл в Windows и можно ли это сделать без tcom ?

1 Ответ

0 голосов
/ 14 сентября 2018

Это не имеет никакого отношения к разделителю каталогов: Tcl обрабатывает / на любой платформе как разделитель каталогов.

Это касается прав доступа к файлу [*] каталога, в который вы пытаетесь записать

C:\Users\jackman\tmp>ver

Microsoft Windows [Version 10.0.16299.431]

C:\Users\jackman\tmp>tclsh
% info patchlevel
8.6.4
% set fh [open ./newfile {RDWR CREAT}]
file2627a80
% puts $fh first
% puts $fh second
% close $fh
% set fh [open ./newfile r]; puts [read $fh]; close $fh
first
second
ond line

% set fh [open /not_allowed_here w]
couldn't open "/not_allowed_here": permission denied

Замечания:

  1. Я могу создать файл в своем домашнем каталоге
  2. Я не могу создать файл в корневом каталоге файловой системы
  3. Обратите внимание, что содержимое файла содержит более 2 строк: это потому, что файл имеет предыдущее содержимое, а список директив доступа не включал TRUNC.

[*] Я не системный администратор Windows: «права доступа к файлам», я уверен, что это не правильный термин для него. ACL может быть?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...