I want to read data from a tape and store that data on disk as a virtual tape. How to I maintain the original block structure of the tape? Some of the data I have requires the block structure stays the same. How to I establish what the block structure is on the source tape? I was thinking of writing the blocks to file with a header and footer structure and then using that to write back to tape/virtual tape maintaining the block structure. I can't work out how to establish the block structure of the data of the incoming data. I am doing this on Linux(Centos) in C. Language is not critical, will accept help in any language.
1
There are 1 best solutions below
Related Questions in IO
- Writes in io_uring do not advance the file offset
- How to request a Vendor ID during enumeration with ECAM?
- How to get block device I/O throughput in a Linux C program
- Cobol program wont read until end of file
- Cobol errors, cannot seem to figure it out
- Can not send data from client to server
- Open File in Python and viewing contents of that file
- Cobol file WRITE not allowed, file not open for output (status = 48) for file output-file
- Why is STDIN open by default for programs running in SystemD?
- GCP Cloud Sql (Postgres) simple select queries exceed disk read quota
- Is there any way to do this without writing the file to memory first?
- Spawning multiple celery tasks dynamically
- How Dask manages file descriptors
- Input Output from CSV in Ruby. console output different from file output
- Want to know the PCIe MMIO request payload unit size
Related Questions in BLOCKING
- Is it possible to launch this worker in a separate thread instead of blocking the main one?
- block specific word in layer 7
- aws amplify: calling a 3rd party api within a endpoint handler blocks without any return
- How do I find out what blocking call is stopping tasks from being processed?
- Spring WebFlux return response when error occurs in Mono.zip but keep processing them
- Select statement getting blocked on LGWR session
- Why robots.txt file is supposed to block sub folder but blocking some random files also
- Azure Storage Account zoned redundant storage blocking
- How can I get runBlocking in Kotlin to work correctly?
- In Kotlin code, runBlocking does not block
- Why is MPI_Bsend() a blocking function?
- Collapsible box is not moving other elements when it is expanding due to an update from the host website. Is there any alternative?
- Is Python's `print()` function blocking or non-blocking?
- Process hangs on the write to the pipe
- Writing to a Non-Full Pipe Blocks the Process in C
Related Questions in CENTOS5
- I cannot instantly reconnect to ssh server after logout
- JDK17 throws an error /lib64/libc.so.6: version `GLIBC_2.6' not found
- Silence sysstat-collect.service?
- yum errors on CentOS 5
- select count(*) query is too slow. I'm guess it is not work by indexing
- How to create a RPM which install python dependencies?
- How to perform SFTP operations using PHP after disabling deprecated ciphers on CentOS5?
- Install Centos 5 repo on Centos 7
- Append timestamp to log entries generated from AWK script
- Java Process getting killed without logging
- Unable to compile python3.7 on centos 5 with sqlite3
- lapacke.h in CentOS 5
- C++: what exactly do -O flag except the flags addition
- drop data base from mysql in centos(Linux)
- "basename: missing operand" on su command
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
As far as I know, your analysis is correct. Tape will not maintain any structure of files which it has. You should use "file marks" to find out the location of a file in a tape.
Actually process of writing a set of files to a tape goes something like this : Write 1st file, Write 1st filemark, Write 2nd file, Write 2nd filemark & so on. While restoring, for example, you need 2nd file to be restore, just jump to the 1st filemark on the tape & start reading it using ReadFile, till you reach the next file mark.
Here are some APIs you can use to do these operations said above :
In case any doubts arise, please get back to me.