Copy link to clipboard
Copied
Does anyone know what the entries in the FrameMaker "lck" file represent ? I can guess at some of them, but if there is some kind of reference info somewhere, that would be useful.
Thanks
Jang
On either Unix (FM7) or Win7 (FM9), the string looks like:
username/Real Name/sysname/Mon Jul 28 07:43:27 2014/1406551407/1/
username/
Login name of user holding lock
/Real Name/
Full name of that user
/sysname/
System (PC, workstation, or VM instance I suppose) name
/Mon Jul 28 07:43:27 2014/
Time of most recent Write (apparently not time of Open)
/1406551407/
Might be same timestamp, as Unix Epoch (seconds since 00:00:00 1970-01-01 UTC).
Might also be some other time, such as Open. The Solaris system I'm
...Copy link to clipboard
Copied
OK, I'm curious, and I'm not going to be helpful because I have no idea of
the syntax.
But I have to ask... it's a network locking file, with one setting -- it's
only present if the file is open on someone's desktop.
What can you do with either the file or the syntax?
Art Campbell
art.campbell@gmail.com
"... In my opinion, there's nothing in this world beats a '52 Vincent and
a redheaded girl." -- Richard Thompson
No disclaimers apply.
DoD 358
I support www.TheGrotonLine.com, hyperlocal news for Groton MA.
Copy link to clipboard
Copied
Hello Art,
At normal FM termination, the file is closed and the lock file is deleted. But when a program or script has crashed, that does not happen. The lock file is still there even though the file is not open in anyone's application. When you try to open the file, there is a dialog showing that the file is in use - it lists the user who supposedly has the file open in their FM application. You can then reset the lock and continue. My script opens files in the background (invisible) and needs to reset the lock when appropriate. So I will have to check the info from the lock file against the user who is currently logged in (and possibly also the computer on which the application is running). I don't want to remove the lock file from a network drive when someone else is currently working on it. But I also do not want to keep my script from working when an obsolete lock file still exists as the remains of an earlier crash or bug in the FM application (which also occurs every once in a while).
I posted it here instead of in the Scripting forum, as the syntax of the file is not specific to scripting or programming.
Kind regards
Jang
Copy link to clipboard
Copied
Thank, Jang! Curiosity satisfied.
Cheers,
Art
Art Campbell
art.campbell@gmail.com
"... In my opinion, there's nothing in this world beats a '52 Vincent and
a redheaded girl." -- Richard Thompson
No disclaimers apply.
DoD 358
I support www.TheGrotonLine.com, hyperlocal news for Groton MA.
Copy link to clipboard
Copied
And I did not even kill the cat (not yet, that is... )
Copy link to clipboard
Copied
On either Unix (FM7) or Win7 (FM9), the string looks like:
username/Real Name/sysname/Mon Jul 28 07:43:27 2014/1406551407/1/
username/
Login name of user holding lock
/Real Name/
Full name of that user
/sysname/
System (PC, workstation, or VM instance I suppose) name
/Mon Jul 28 07:43:27 2014/
Time of most recent Write (apparently not time of Open)
/1406551407/
Might be same timestamp, as Unix Epoch (seconds since 00:00:00 1970-01-01 UTC).
Might also be some other time, such as Open. The Solaris system I'm using lacks a manpage for the various date and clock commands, and isn't responding to standard options, so I wasn't able to decode it. The readable date and the 14.... are real instance. If they match, it's Write date. If the 14... stamp is earlier by minutes, it's Open.
/1/
Beats me, but was "1" on both systems.
Copy link to clipboard
Copied
Thanks,
I was assuming this, but as my user and real name (on my 1-person company computer) is the same, I was unsure about which one was which. Could have tested it of course but I was hoping this forum would be quicker.
Jang
Copy link to clipboard
Copied
Hi Jang,
Only additional information. The date seems to be of the format/language of your system.
I have FrameMaker English on a German Windows system and the date is in German and in the German format.
Best regards
Winfried
Copy link to clipboard
Copied
> Could have tested it of course ...
There are probably some corner cases you do need to test, such UserIDs and/or RealNames that have "/" in them (I used to work with a guy who fancied that notation). Whether FM will escape such content in in the .lck string, and if so how, is anyone's guess.
Unicode in any of the name strings is another issue, as is Unicode in the planes above 16 bit.
Copy link to clipboard
Copied
Sounds like a basket case to me. My customers are quite normal - comparatively speaking
Copy link to clipboard
Copied
> Sounds like a basket case to me.
He was a pretty sharp coder, actually, with roots going back to IBM JCL as I recall. I think, where he could get it, his actual UserID was "hti/" (where hti was His Three Initials). He might have contributed to the failure of X400 as an email standard, as his UID probably broke rev 1.0 of every address parser for it. He also might have been the only person on the planet with a UID like that (other than some unfortunate legacy codepage mappings, below).
Unicode, on the other hand, needs a look. If any naming characters are outside 8-bit (Basic Latin and Latin-1 Supplement), people are going to use Unicode if the OS allows. I'd expect the .lck file to thus contain Unicode, but since this file is basically Adobe private use, the notation might be actual UTF-8, or escaped \u UTF-8 as in MIF, or now for something, completely different.
On Windows, you might even find codepage user or system names which amount to arbitrary Latin characters displayed as the desired locailized something else by apps that can check the OS localization settings. The arbitrary Latin characters might include the "/" (I haven't checked a suitable sample of codepage maps). In that case, I'd expect FM to do whatever it does with a plain "/" in English localizations.
Looks like the code page scenario can't happen. All the code page maps I looked at reserved the low order 7-bit character space for ASCII, so \x2F will always mean "/".