Sponsored Content
Top Forums Programming Merge two strings by overlapped region Post 302895979 by DGPickett on Thursday 3rd of April 2014 03:23:52 PM
Old 04-03-2014
Since all you need to reconstruct the last try is the length of str1 you used, it is easy to reconstruct the winner even though you need to go too far to find the limit. You might even use bisection to find the right number! If str1 has 6 bytes, try 3, then 1 or 5, then 0, 2, 4, 6 to find the highest substring that works. Use the shorter length of str1 and str2, as the max overlap is that length and the min is always 0.

I helps in C to know what is going on, at least in a sensible model. Imagine a char* in a 32 bit system is a 4 byte unsigned integer offset from the bottom of memory. Values in the environment are in the heap below free memory. The heap grows up like stalagmites. Subroutine arguments and auto variables are on the stack at the top of memory growing down like stalactites. When you call, automatics may have whatever old ram content in them, so write before you read. When you exit a subroutine, the stack pointer rises above the automatics and passed variables, and the space is reused/overwritten on the next call. When you create a static or global variable, the compiler/linker allocates it on the heap. When you malloc, that is on the heap, too. Since you can free, someone has to keep track of the holes and try to reuse them. Fancy items like structs and such may be allocated on a mod 4 or 8 address, for speed. Some CPUs need aligned variables -- 4 byte integers have to have mod-4 addresses. So, space can be wasted when little and big items are mixed. If you mmap() a file region, address space is allocated, but rather than setting it up to swap to swap space, it is tied to the file. Some people do not like calling everything at the bottom 'the heap'. Dynamically linked code is mmap'd into several places. Itmight have initialized variables and constants with it, which are put in different areas, sometimes because code is on executable pages but data may be not executable, even not writable. If you run a command under truss, tusc or strace, you can see all this going on -- very educational.
This User Gave Thanks to DGPickett For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

stack region

how can i determine that what percentage of stack region is currently is used? (i am using tru64 unix) (2 Replies)
Discussion started by: yakari
2 Replies

2. UNIX for Dummies Questions & Answers

Merge two strings not from files

str1="this oracle data base record" str2="one two three four five" Output: this one oracle two data three base four record five str1 and str2 have the same column but they are not fixed columns. I can do it with "paste" but I do not want to create file everytime the script runs from... (2 Replies)
Discussion started by: buddyme
2 Replies

3. UNIX for Advanced & Expert Users

Best practice - determining what region you are on

Hello all, I have a question about what you think the best practice is to determine what region you are running on when you have a system setup with a DEV/TEST, QA, and PROD regions running the same scripts in all. So, when you run in DEV, you have a different directory structure, and you... (4 Replies)
Discussion started by: Rediranch
4 Replies

4. Shell Programming and Scripting

Region between lines

How can I find the regions between specific lines? I have a file which contains lines like this: chr1 0 17388 0 chr1 17388 17444 1 chr1 17444 17599 2 chr1 17599 17601 1 chr1 17601 569791 0 chr1 569791 569795 1 chr1 569795 569808 2 chr1 569808 569890 3 chr1 569890 570047 4 ... (9 Replies)
Discussion started by: linseyr
9 Replies

5. UNIX for Dummies Questions & Answers

overlapped genomic coordinates

Hi, I would like to know how can I get the ID of a feature if its genomic coordinates overlap the coordinates of another file. Example: Get the 4th column (ID) of this file1: chr1 10 100 gene1 chr2 3000 5000 gene2 chr3 200 1500 gene3 if it overlaps with a feature in this file2: chr2... (1 Reply)
Discussion started by: fadista
1 Replies

6. AIX

Change lv REGION in HDISK1

Dears my rootvg is missed up i can not extend the /opt as soon as i try to extend the Filesystem its give me that there is not enough space . as there any way to change the REGION of the LVs in HDISK1 ? lspv -p hdisk0 hdisk0: PP RANGE STATE REGION LV NAME TYPE ... (8 Replies)
Discussion started by: thecobra151
8 Replies

7. Shell Programming and Scripting

Merge left hand strings mapping to different right hand strings

Hello, I am working on an Urdu to Hindi dictionary which has the following structure: a=b a=c n=d n=q and so on. i.e. Headword separated from gloss by a = I am giving below a live sample بتا=बता بتا=बित्ता بتا=बुत्ता بتان=बतान بتان=बितान بتانا=बिताना I need the following... (3 Replies)
Discussion started by: gimley
3 Replies

8. Programming

Perl script to merge cells in column1 which has same strings, for all sheets in a excel workbook

Perl script to merge cells ---------- Post updated at 12:59 AM ---------- Previous update was at 12:54 AM ---------- I am using below code to read files from a dir and print to excel. open(my $in, '<', $file) or die "Could not open file: $!"; my $rowCount = 0; my $colCount = 0;... (11 Replies)
Discussion started by: Jack_Bruce
11 Replies

9. Shell Programming and Scripting

Merge strings from a file into a template

I am preparing a morphological grammar of Marathi to be placed in open-source. I have two files. The first file called Adverbs contains a whole list of words, one word per line A sample is given below: आधी इतक इतपत उलट एवढ ऐवजी कड कडनं कडल कडील कडून कडे करता करिता खाल (2 Replies)
Discussion started by: gimley
2 Replies

10. Shell Programming and Scripting

Merge strings with ignore case

I have a bi-lingual database of a large number of dictionaries. It so happens that in some a given string is in upper case and in others it is in lower case. An example will illustrate the issue. toll Tax=पथ-कर Toll tax=राहदारी कर toll tax=टोल I want to treat all three instances of toll tax... (3 Replies)
Discussion started by: gimley
3 Replies
heap(1) 						    BSD General Commands Manual 						   heap(1)

NAME
heap -- List all the malloc-allocated buffers in the process's heap SYNOPSIS
heap [-guessNonObjects] [-sumObjectFields] [-showSizes] [-addresses all | <classes-pattern>] [-noContent] pid | partial-executable-name DESCRIPTION
heap lists the objects currently allocated on the heap of the specified process, as well as summary data. Objects are categorized by class name, type (Objective-C, C++, or CFType), and binary image. C++ objects are identified by the vtable referenced from the start of the object, so with multiple inheritance this may not give the precise class of the object. The binary image identified for a class is the image which implements the class, not necessarily the binary image which caused the objects to be allocated at runtime, or which "owns" those objects. heap requires one parameter -- either a process ID or a full or partial executable name. The following options are available: -guessNonObjects Look through the memory contents of each Objective-C object to find pointers to malloc'ed blocks (non-objects), such as the variable array hanging from an NSArray. These referenced blocks of memory are identified as their offset from the start of the object (say "__NSCFArray[12]"). The count, number of bytes, and average size of memory blocks referenced from each different object offset loca- tion are listed in the output. -sumObjectFields Do the same analysis as with the -guessNonObjects option, but add the sizes of those referenced non-object fields into the entries for the corresponding objects. -showSizes Show the distribution of each malloc size for each object, instead of summing and averaging the sizes in a single entry. -addresses all | <classes-pattern> Print the addresses of all malloc blocks found on the heap in ascending address order, or the addresses of those objects whose full class name is matched by the regular expression <classes-pattern>. The string "all" indicates that the addresses of all blocks (both objects and non-objects) should be printed. The <classes-pattern> regular expression is interpreted as an extended (modern) regular expression as described by the re_format(7) manual page. Note that toll-freed-bridged CoreFoundation and Foundation classes have the "__NSCF" prefix rather than just "NS" or "CF". Examples of valid classes-patterns include: __NSCFString 'NS.*' '__NSCFString|__NSCFArray' '.*(String|Array)' non-object -noContent Do not show object content in -addresses mode. SEE ALSO
malloc(3), leaks(1), malloc_history(1), stringdups(1), vmmap(1), DevToolsSecurity(1) The Xcode developer tools also include Instruments, a graphical application that can give information similar to that provided by heap. The Allocations instrument graphically displays dynamic, real-time information about the object and memory use in an application, including back- traces of where the allocations occurred. The Leaks instrument performs memory leak analysis. BSD
Mar. 16, 2013 BSD
All times are GMT -4. The time now is 02:14 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy