Sponsored Content
Top Forums Programming Interesting Problem About Incrementing ++ Post 302248968 by f.ben.isaac on Monday 20th of October 2008 08:53:00 AM
Old 10-20-2008
Quote:
Originally Posted by MrC
A character array is never empty. It is a contiguous array of memory cells, each of which contains some value. You are using a character array to represent strings; as such, you must manage the terminating NULL byte '\0'.

If you want to use strcpy(), you must ensure that there is a NULL byte at the location where you want the copy to begin. If you are trying to copy into an array for the first time, use strcat(). Use strcpy() to append to an existing array (or again, set the first byte to '\0').

It is not useful to attempt to diagnose other errors you see when there are likely out of bounds array copies occurring, as the stack becomes trashed.

Never use any function that copies memory from one location to another which is of unknown length, or copy a know length to an offset that would make the copy exceed the bounds of the variable or data structure. Use strncat() or strncpy() to ensure the copy never exceeds the variable's bounds.
Thanks!!!! This advice will help me now and later on .... I will play around with it....Anyhow, i was trying to write a simple very basic local port scanner, do you think the algorithm of my code right?
 

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

An interesting problem

hi!, here is an interesting problem ..... I ftp a file named " my first file.doc" from windows to my HP workstation. Ftp is succesful. The file appears with the same name in my home directory.. But now how do I open this file?? while using Vi or More or other editor, they take only the... (5 Replies)
Discussion started by: jyotipg
5 Replies

2. UNIX for Advanced & Expert Users

interesting problem

After a server reboot for regular mainatanance we face the following situation: 1/ user accounts with ksh can't start the korn shell 2/ korn shell scripts do work however, if executed from bash 3/ normal users with bash can't run ksh 4/ root can run ksh 5/ if I switch the default shell to... (3 Replies)
Discussion started by: rein
3 Replies

3. SCO

I have an interesting problem and need advice

We have an inhouse built application which handles our AR function. We'd like to email statements out of the application directly. My question is this is there a good, solid, command line driven, scriptable Mail Transport Agent that would allow us to send a semi unique email (with a statement and... (1 Reply)
Discussion started by: Maldain
1 Replies

4. Shell Programming and Scripting

Interesting problem

Hello, So I'm utilizing the bash brace expansion feature to checkout multiple folders from cvs with ease, while excluding certain subfolders within. So I do a command like this: cvs co trunk/{mod_a,mod_b,mod_c} \!trunk/{mod_a,mod_b,mod_c}/web to checkout modules trunk/mod_a , trunk/mod_b ,... (1 Reply)
Discussion started by: neked
1 Replies

5. Shell Programming and Scripting

interesting problem

Hi, I am new in this forum and I am glad to be a part of it. I have a problem that has two parts: 1/ extract just the timestamp from a filename: for example, I have a file called 'sales20080226144525.txt' and I want to extract just the '20080226144525' part out of it. 2/ Now, take that... (5 Replies)
Discussion started by: ChicagoBlues
5 Replies

6. Solaris

Very Interesting Problem

Ok Lets say i have a webpage on a solaris box. and i am trying to make a hyperlink. This hyperlink references a Microsoft Access file on a Windows box. So, How do i make a file reference from The unix box to a windows box. Things to keep in mind -- 1.) Solaris doesnt need to... (6 Replies)
Discussion started by: Demon002
6 Replies

7. Shell Programming and Scripting

Facing problem in incrementing the variable

When I did, echo $SHELL in cmd prompt of putty, its displaying /bin/sh And in my shell script., I hav started with., #!/bin/sh and i=1; while ; do . . . i=$; (9 Replies)
Discussion started by: av_vinay
9 Replies

8. Shell Programming and Scripting

AWK SCRIPT HELP : INCREMENTING PROBLEM

Hi Guys , I am having one command file like this FILE1 ################################ awk '/output/ {a=$2} {for(i=1;i<=NF;i++) { gsub("i1", i) ; gsub("i2",++i) ; gsub("P1", p) }}1' output >> out9 awk '/output/ {a=$2} {for(i=1;i<=NF;i++) { gsub("i1", i) ;... (2 Replies)
Discussion started by: jaita
2 Replies

9. Solaris

Interesting Disk Error Problem

Hi Folks, Have an interesting problem here, have just upgraded some machines (Test and Development) to the latest and greatest as in. SunOS ss063a 5.10 Generic_147440-13 sun4u sparc SUNW,Sun-Fire-V440 However on all the systems we are seeing the same problems, during the boot there is a... (3 Replies)
Discussion started by: gull04
3 Replies

10. Shell Programming and Scripting

Interesting awk problem

Hello; I wish to manipulate the output from the following: ps axo %mem,pid,euser,cmd|sort -nr 14.4 3170 root /usr/sbin/snmpd -Lsd -Lf /dev/null -p /var/run/snmpd.pid -a 3.6 3635 root splunkd -p 8089 start 2.6 3383 root /usr/sbin/httpd 2.1 15496 apache /usr/sbin/httpd ... (5 Replies)
Discussion started by: delphys
5 Replies
STRCAT(2)							System Calls Manual							 STRCAT(2)

NAME
strcat, strncat, strcmp, strncmp, strcpy, strncpy, strlen, strchr, strrchr, strpbrk, strspn, strcspn, strtok, strdup, strstr - string oper- ations SYNOPSIS
#include <u.h> #include <libc.h> char* strcat(char *s1, char *s2) char* strncat(char *s1, char *s2, long n) int strcmp(char *s1, char *s2) int strncmp(char *s1, char *s2, long n) char* strcpy(char *s1, char *s2) char* strncpy(char *s1, char *s2, long n) long strlen(char *s) char* strchr(char *s, char c) char* strrchr(char *s, char c) char* strpbrk(char *s1, char *s2) long strspn(char *s1, char *s2) long strcspn(char *s1, char *s2) char* strtok(char *s1, char *s2) char* strdup(char *s) char* strstr(char *s1, char *s2) DESCRIPTION
The arguments s1, s2 and s point to null-terminated strings. The functions strcat, strncat, strcpy, and strncpy all alter s1. These func- tions do not check for overflow of the array pointed to by s1. Strcat appends a copy of string s2 to the end of string s1. Strncat appends at most n bytes. Each returns a pointer to the null-termi- nated result. Strcmp compares its arguments and returns an integer less than, equal to, or greater than 0, according as s1 is lexicographically less than, equal to, or greater than s2. Strncmp makes the same comparison but examines at most n bytes. The comparisons are made with unsigned bytes. Strcpy copies string s2 to s1, stopping after the null byte has been copied. Strncpy copies exactly n bytes, truncating s2 or adding null bytes to s1 if necessary. The result will not be null-terminated if the length of s2 is n or more. Each function returns s1. Strlen returns the number of bytes in s, not including the terminating null byte. Strchr (strrchr) returns a pointer to the first (last) occurrence of byte c in string s, or if c does not occur in the string. The null byte terminating a string is considered to be part of the string. Strpbrk returns a pointer to the first occurrence in string s1 of any byte from string s2, if no byte from s2 exists in s1. Strspn (strcspn) returns the length of the initial segment of string s1 which consists entirely of bytes from (not from) string s2. Strtok considers the string s1 to consist of a sequence of zero or more text tokens separated by spans of one or more bytes from the sepa- rator string s2. The first call, with pointer s1 specified, returns a pointer to the first byte of the first token, and will have written a null byte into s1 immediately following the returned token. The function keeps track of its position in the string between separate calls; subsequent calls, signified by s1 being will work through the string s1 immediately following that token. The separator string s2 may be different from call to call. When no token remains in s1, is returned. Strdup returns a pointer to a distinct copy of the null-terminated string s in space obtained from malloc(2) or if no space can be obtained. Strstr returns a pointer to the first occurrence of s2 as a substring of s1, or 0 if there is none. If s2 is the null string, strstr returns s1. Alef The routines strcspn, strpbrk, and strspn are not provided in Alef. SOURCE
All these routines have portable C implementations in /sys/src/libc/port. Many also have machine-dependent assembly language implementa- tions in /sys/src/libc/$objtype. SEE ALSO
memory(2), rune(2) BUGS
These routines know nothing about UTF. Use the routines in rune(2) as appropriate. Note, however, that the definition of UTF guarantees that strcmp compares UTF strings correctly. The outcome of overlapping moves varies among implementations. STRCAT(2)
All times are GMT -4. The time now is 07:59 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy