Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 9 years ago.
Improve this question
I have a few database files with .db extension and I want to take a peek. However I don't know what program should I use to open the files. I've found a similar quesiton that says checking the header of the db file could reveal the name of the database-program/type.
What I've found is "FLDB".
Anyone have any clue what kind of database file can this be?
Edit:
Trying to give more hint:
This is a program of a car navigation system and it knows 8 languages. I'm trying to localize it to my language. There are lots of .db and two .gdb files witch (probably) contains this data.
I don't think there is a way to tell which program to use from just the .db extension. It could even be an encrypted database which can't be opened. You can MS Access, or a sqlite manager.
Edit:
Try to rename the file to .txt and open it with a text editor. The first couple of words in the file could tell you the DB Type.
If it is a SQLite database, it will start with "SQLite format 3"
You can use a tool like the TrIDNet - File Identifier to look for the Magic Number and other telltales, if the file format is in it's database it may tell you what it is for.
However searching the definitions did not turn up anything for the string "FLDB", but it checks more than magic numbers so it is worth a try.
If you are using Linux File is a command that will do a similar task.
The other thing to try is if you have access to the program that generated this file, there may be DLL's or EXE's from the database software that may contain meta information about the dll's creator which could give you a starting point for looking for software that can read the file outside of the program that originally created the .db file.
Related
Closed. This question is not reproducible or was caused by typos. It is not currently accepting answers.
This question was caused by a typo or a problem that can no longer be reproduced. While similar questions may be on-topic here, this one was resolved in a way less likely to help future readers.
Closed 4 months ago.
Improve this question
This is a very simple question today, for some reason when I start a batch file with the code:
ssh user#192.168.1.101
It loops infinitely, output:
Would really appreciate it if someone knows the answer to this, if not, I will also take some different software suggestions, my requirements are:
It must be able to connect through SSH to a Linux server through Windows,
It can not have the capability of storing passwords,
It must be able to open multiple instances of SSH connections, and
I must be able to input the password and commands in manually through a terminal.
Edit: Note I named my batch file SSH.bat
cmd executes in the following, relevant, order:
It checks working directory itself for a file with the name only (if no extension is specified). the system variable %pathext% displays the extensions and the order it will be searched.
If the file is not found locally, then it will move to the environment variables and try and find a command in %path%.
So, in your case, the ssh.bat file has called ssh.exe as ssh without extension and therefore found ssh.bat in the current directory and then keeps calling itself, as that is what you're effectively telling it to do.
two methods of fixing this; Name the file something other than system commands or simply fully use name, path and extensions in your batch file, so you can then have ssh.bat with C:\path\to\ssh.exe host:22 which will override checking local path as you implicitly specify the path to the executable.
If a command loops infinitely, mostly it is caused by using the same name for the batch file than the name of the executable program.
The batch file has precedence over the exe, so it starts itself
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
Closed 5 years ago.
We don’t allow questions seeking recommendations for books, tools, software libraries, and more. You can edit the question so it can be answered with facts and citations.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Improve this question
I'm trying to get file-locking semantics on Linux that are close to what Windows offers for the purpose of not deleting cache files while they're open by a separate process. My program creates various temporary cache files that I want to delete when it closes, however multiple instances might run at the same time and I don't want to delete a file that's in use by another instance, because it will break semantics - the cache file is opened by name at various points and if deleted, that will break. I know that Linux won't physically delete the file until all open handles are closed, but I still need to open it by name.
The name of each file uniquely identifies the contents, i.e. I know that if I need data X, it's in the cache file named hash(X), so it doesn't matter if the current instance is the one creating it, or if I'm reusing a file created by another instance. Obviously it's not exactly the hash of the data, since if I had the data, I wouldn't need cache files, but suffice to say that reusing cache files is what I want.
My problem is that I haven't found a race-free way to lock the file with flock after opening it. Between those two calls another process might finish and run a cache cleanup operation that deletes the file I've just created. I don't need mandatory locking like on Windows, since it's only my program accessing those files, but I do need a way to keep instances from stepping on each other.
Edit: I'm using C.
I don't want to delete a file that's in use by another instance
You cannot delete a file used by another process (or even the same process). You can delete the directory entry (or rather a directiry entry, as there may be more than one) that points to that file, but the file itself will remain live for as long as it's kept open by any process. Files in Linux are reference-counted, that's what making it work.
An easy method to collaboratively "lock" a file by name would be this:
char new_filename[FILENAME_SIZE] = "busy_";
link (filename, strcat(new_filename, filename));
fd = open(new_filename, "r");
if (fd) {
......
close (fd);
}
unlink (new_filename);
One does not check the result of link. If everyone does this to open a file, and cleanup only unlinks the original name, you are set.
Closed. This question does not meet Stack Overflow guidelines. It is not currently accepting answers.
This question does not appear to be about a specific programming problem, a software algorithm, or software tools primarily used by programmers. If you believe the question would be on-topic on another Stack Exchange site, you can leave a comment to explain where the question may be able to be answered.
Closed 7 years ago.
Improve this question
The vx570 has a USB port that I know you can use as a software download vector, but when I tried it, I was unable to initiate the download process. There is nothing in system mode that would allow me to to execute a program like DDL, which we use for serial (RS232) downloads. What do I need to do to initiate the download and how do I specify where the files should go?
Yes, this is actually pretty simple.
1) Create a folder for each file group you want to put data in. So if you want to put something into RAM in file group 3, then name the folder 3. If you want to put something into FLASH in file group 3, then name it F3. You can mix at match at will so if you are going to load your program in to file group 3 and it has both RAM and FLASH components, then you would have a 3 folder AND an F3 folder. If you were also loading VMAC, then you would ALSO have a 1, F1, 15 and F15.
2) Package all this stuff up into a .zip file. You MUST name it Verifone.zip Put this file onto your USB thumb drive at the root level.
3) Go into system mode and press '#' to start a full download into group 1.
4) Insert the thumb drive into the USB slot on the 570. The terminal will see that there is a file called Verifone.zip and will guide you through the rest.
There is one potentially tricky thing about all of this and that is the config.sys variables. Since you aren't using DDL.exe, you don't have a way to set them during the download. You CAN, however, load the config.sys file directly to the terminal as part of the download. The problem is that it is a compressed format file, so if you were to look at it in notepad, it would contain a bunch of junk like äåöíáîæéì. The only way I know of to generate this file is to use the "Direct Upload Utility" as found on VeriFone's DevNet site. As it turns out, it will also do the rest of step 1 (above) for you, as well.
1) Download DUL from DevNet onto your computer
2) Using DDL.exe (or whatever you have been using to set up terminals in the past), configure a terminal to be in the exact state that you want your future downloads to be in.
3) Connect the terminal to your computer and run DUL. Use the * wildcard to specify that you want all files to upload to your computer. See DUL's documentation for more details.
4) Optional: DUL's naming convention is to prefix RAM folders with I and use 2 digit group numbers. I suspect this will work, but I always change mine to single digits and drop the I for RAM groups.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
So i was just playing with files like opening with hex editor and doing some stuff. and i found one thing...
i can access the data stored in a file but where are the metadata like file property, time stamps and other things are stored?
it's definitely not stored inside the file but where it is? is it stored somewhere in HardDrive filesystem or anywhere else? i also noticed that the NTFS file system can also store permissions like i can use dos command cacls (or icacls) on NTFS filesystem but it does not support filesystems like FAT32.
and if it is on the harddrive then we can change the metadata (file properties hidden,archive etc) using linux (am i right)?
please can someone explain or tell me where i can find the right information about this topic.
Metadata stored separately from file data. Usually in structures called inode, but its depends on filesystem used. On Linux, you work with meta data through API provided through function chmod(2), chown(2) etc. Number in parentheses is section number, you read about these with man command: man -s2 chown. For command-line, linux have commands with similar names (chmod, chown, touch, etc).
Yes, the filesystem itself allocates additional space for storing metadata on the disk.
All operating systems give you an API that allows changing the metadata of files (timestamps, attributes, name, etc.).
and you can by opening the appropriate device file for a partition or hard disk (e.g. "\.\C:") and reading/writing to it. When you know the details of the file system, you can figure out the metadata location(s) for a specific file on the disk.
Closed. This question is off-topic. It is not currently accepting answers.
Want to improve this question? Update the question so it's on-topic for Stack Overflow.
Closed 10 years ago.
Improve this question
One of the drivers I'm developing has caused a BSOD. Unfortunately a dump file was not created since it was not configured / low resources. I was trying to reproduce this crash but no luck so far.
Is there any way to get some info using WinDbg or any other tool?
I have this information:
A screenshot of the BSOD
The .sys file.
Its pdb
The source code
The machine it was crashed on
I have everything except the dump itself.
Your help will be much appreciated.
As I said above, no dump (/minidump) exists. This is the actual problem.
For this specific crash, I know I won't be able to get the stack. Just getting the specific line of code will be good enough. Because the BSOD contains the module's address, it seems like there should be a way to detect which line exactly is it. As I mentioned above, I do have the .sys file, the pdb and the source code.
This is the specific code taken from MSDN: SYSTEM_SERVICE_EXCEPTION.
How can I know from there what was the specific line? and/or the specific exception raised?
You have the crash address, want to know the source line?
Fire up kd or windbg, disasm that address and code before it. Find the function entry point (where it adjust the stack) and you can now lookup the symbol table. From there you disasm again and compare the source.
Sorry, I guess you need to read some asm. I know no better way.
If you are lucky you will have minidump in C:\windows, so check if its there.
If its available open it in Windbg and analyse.
You don't need to configure for low resource to create dump, refer this link http://support.microsoft.com/kb/254649 on how to setup windows to create dump files. Create full dump if you want to debug your driver.
Coming back to your question to analyse issue:
Refer bugcheck reference here to understand your BSOD error. http://msdn.microsoft.com/en-us/library/windows/hardware/hh406232(v=vs.85).aspx
Depending upon what BSOD you got, check any parameters or other information to get possible cause.
But its not likely that you will reach to good conclusion with information you have. You will need dump file to really understand the issue.