Sponsored Content
Top Forums Shell Programming and Scripting Extract sequences of bytes from binary for differents blocks Post 302845113 by ahamed101 on Tuesday 20th of August 2013 11:22:03 PM
Old 08-21-2013
Remove the printf("\n"); from the function print_data and place it in the main function in here

Code:
                if(buf[0] == 0x32){
                        if(18 != fread(ptr+2, sizeof(char), 18, fp))
                                err("Insufficient data");
                        if(memcmp(buf+4, pat1, 4) && memcmp(buf+12, pat2, 2)){
                                fseek(fp, pos, SEEK_SET);
                        }else{
                                found = 1; //found the starting of the block with data
                                printf("\n");
                                print_data(ptr, 19);
                        }
                        continue;
                }

HTH
--ahamed
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Remove first N bytes and last N bytes from a binary file on AIX.

Hi all, Does anybody know or guide me on how to remove the first N bytes and the last N bytes from a binary file? Is there any AWK or SED or any command that I can use to achieve this? Your help is greatly appreciated!! Best Regards, Naveen. (1 Reply)
Discussion started by: naveendronavall
1 Replies

2. UNIX for Advanced & Expert Users

Deal with binary sequences

Hello, I have come across the necessity for me to deal with binary sequences and I had a few questions. 1- Does any UNIX scripting language provide any tool or command for converting text data to binary sequences? Example of binary sequence: "0x97 0x93 0x85 0x40 0xd5 0xd6 0xd7" 2- If I want... (2 Replies)
Discussion started by: Indalecio
2 Replies

3. Shell Programming and Scripting

Extract sequence blocks

Hi, I have an one-line file consisting of a sequence of 660 letters. I would like to extract 9-letter blocks iteratively: ASDFGHJKLQWERTYUIOPZXCVBNM first block: ASDFGHJKL 1nd block: SDFGHJKLQ What I have so far only gives me the first block, can anyone please explain why? cat... (7 Replies)
Discussion started by: solli
7 Replies

4. Shell Programming and Scripting

extract blocks of text from a file

Hi, This is part of a large text file I need to separate out. I'd like some help to build a shell script that will extract the text between sets of dashed lines, write that to a new file using the whole or part of the first text string as the new file name, then move on to the next one and... (7 Replies)
Discussion started by: cajunfries
7 Replies

5. Linux

Why does ext3 allocate 8 blocks for files that are few bytes long

The title is clear: why does ext3 allocate 8 blocks for files that are few bytes long? If I create a file named "test", put a few chars in it, and then I run: stat test I get that "Blocks: 8" I searched in the web and found that ext does that, it allocates 8 blocks even if It doesn't need... (4 Replies)
Discussion started by: Tavo
4 Replies

6. UNIX for Dummies Questions & Answers

X bytes of 0, Y bytes of random data, Z bytes of 5, T bytes of 1. ??

Hello guys. I really hope someone will help me with this one.. So, I have to write this script who: - creates a file home/student/vmdisk of 10 mb - formats that file to ext3 - mounts that partition to /mnt/partition - creates a file /mnt/partition/data. In this file, there will... (1 Reply)
Discussion started by: razolo13
1 Replies

7. Shell Programming and Scripting

Extract sequences based on the list

Hi, I have a file with more than 28000 records and it looks like below.. >mm10_refflat_ABCD range=chr1:1234567-2345678 tgtgcacactacacatgactagtacatgactagac....so on >mm10_refflat_BCD range=chr1:3234567-4545678... tgtgcacactacacatgactagtatgtgcacactacacatgactagta . . . . . so on ... (2 Replies)
Discussion started by: Diya123
2 Replies

8. Shell Programming and Scripting

Extract length wise sequences from fastq file

I have a fastq file from small RNA sequencing with sequence lengths between 15 - 30. I wanted to filter sequence lengths between 21-25 and write to another fastq file. how can i do that? (4 Replies)
Discussion started by: empyrean
4 Replies

9. Shell Programming and Scripting

Extract the part of sequences from a file

I have a text file, input.fasta contains some protein sequences. input.fasta is shown below. >P02649 MKVLWAALLVTFLAGCQAKVEQAVETEPEPELRQQTEWQSGQRWELALGRFWDYLRWVQT LSEQVQEELLSSQVTQELRALMDETMKELKAYKSELEEQLTPVAEETRARLSKELQAAQA RLGADMEDVCGRLVQYRGEVQAMLGQSTEELRVRLASHLRKLRKRLLRDADDLQKRLAVY... (8 Replies)
Discussion started by: rahim42
8 Replies

10. Shell Programming and Scripting

Blocks of text in a file - extract when matches...

I sat down yesterday to write this script and have just realised that my methodology is broken........ In essense I have..... ----------------------------------------------------------------- (This line really is in the file) Service ID: 12345 ... (7 Replies)
Discussion started by: Bashingaway
7 Replies
explain_fread(3)					     Library Functions Manual						  explain_fread(3)

NAME
explain_fread - explain fread(3) errors SYNOPSIS
#include <libexplain/fread.h> const char *explain_fread(void *ptr, size_t size, size_t nmemb, FILE *fp); const char *explain_errno_fread(int errnum, void *ptr, size_t size, size_t nmemb, FILE *fp); void explain_message_fread(char *message, int message_size, void *ptr, size_t size, size_t nmemb, FILE *fp); void explain_message_errno_fread(char *message, int message_size, int errnum, void *ptr, size_t size, size_t nmemb, FILE *fp); DESCRIPTION
These functions may be used to obtain explanations for errors returned by the fread(3) system call. explain_fread const char *explain_fread(void *ptr, size_t size, size_t nmemb, FILE *fp); The explain_fread function is used to obtain an explanation of an error returned by the fread(3) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. This function is intended to be used in a fashion similar to the following example: size_t how_many = fread(ptr, size, nmemb, fp); if (how_many == 0 && ferror(fp)) { fprintf(stderr, "%s ", explain_fread(ptr, size, nmemb, fp)); exit(EXIT_FAILURE); } ptr The original ptr, exactly as passed to the fread(3) system call. size The original size, exactly as passed to the fread(3) system call. nmemb The original nmemb, exactly as passed to the fread(3) system call. fp The original fp, exactly as passed to the fread(3) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. explain_errno_fread const char *explain_errno_fread(int errnum, void *ptr, size_t size, size_t nmemb, FILE *fp); The explain_errno_fread function is used to obtain an explanation of an error returned by the fread(3) system call. The least the message will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail. This function is intended to be used in a fashion similar to the following example: size_t how_many = fread(ptr, size, nmemb, fp); if (how_many == 0 && ferror(fp)) { int err = errno; fprintf(stderr, "%s ", explain_errno_fread(err, ptr, size, nmemb, fp)); exit(EXIT_FAILURE); } errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. ptr The original ptr, exactly as passed to the fread(3) system call. size The original size, exactly as passed to the fread(3) system call. nmemb The original nmemb, exactly as passed to the fread(3) system call. fp The original fp, exactly as passed to the fread(3) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. explain_message_fread void explain_message_fread(char *message, int message_size, void *ptr, size_t size, size_t nmemb, FILE *fp); The explain_message_fread function may be used to obtain an explanation of an error returned by the fread(3) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. This function is intended to be used in a fashion similar to the following example: size_t how_many = fread(ptr, size, nmemb, fp); if (how_many == 0 && ferror(fp)) { char message[3000]; explain_message_fread(message, sizeof(message), ptr, size, nmemb, fp); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } message The location in which to store the returned message. If a suitable message return buffer is supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. ptr The original ptr, exactly as passed to the fread(3) system call. size The original size, exactly as passed to the fread(3) system call. nmemb The original nmemb, exactly as passed to the fread(3) system call. fp The original fp, exactly as passed to the fread(3) system call. explain_message_errno_fread void explain_message_errno_fread(char *message, int message_size, int errnum, void *ptr, size_t size, size_t nmemb, FILE *fp); The explain_message_errno_fread function may be used to obtain an explanation of an error returned by the fread(3) system call. The least the message will contain is the value of strerror(errnum), but usually it will do much better, and indicate the underlying cause in more detail. This function is intended to be used in a fashion similar to the following example: size_t how_many = fread(ptr, size, nmemb, fp); if (how_many == 0 && ferror(fp)) { int err = errno; char message[3000]; explain_message_errno_fread(message, sizeof(message), err, ptr, size, nmemb, fp); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } message The location in which to store the returned message. If a suitable message return buffer is supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. ptr The original ptr, exactly as passed to the fread(3) system call. size The original size, exactly as passed to the fread(3) system call. nmemb The original nmemb, exactly as passed to the fread(3) system call. fp The original fp, exactly as passed to the fread(3) system call. SEE ALSO
fread(3) binary stream input explain_fread_or_die(3) binary stream input and report errors COPYRIGHT
libexplain version 0.52 Copyright (C) 2008 Peter Miller explain_fread(3)
All times are GMT -4. The time now is 04:56 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy