Sponsored Content
Top Forums Programming Help in memcmp (it may be a bug) Post 302610215 by rink on Wednesday 21st of March 2012 04:42:44 AM
Old 03-21-2012
Help in memcmp (it may be a bug)

Hello friends today i have created a program that is working fine . but when string becomes equal it does not work .

Code:
/* String.h header series
	
	Comparison function

memcmp = return 0 if string equal  else return less or greater than value by comparing pointer first and pointer second

*/

#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int main()
{
/*memcmp operation*/
int i;
char str[20];
char str2[20];
printf("Enter first string: ");
fgets(str,20,stdin);
printf("Enter second string: ");
fgets(str2,20,stdin);
fflush(stdin);
i = memcmp(str,str2,20);
if(i>0){
printf("%s greater than %s\n",str,str2);
}
else if(i<0)	{
	printf("%s greater than %s\n",str2,str);
}
else {   printf("Both are eqaul\n");  }
return 0;  
}

output:
Code:
[root@apache ~]# ./mem
Enter first string: hello
Enter second string: hello
hello greater than hello

memcmp is not working if string equal and it does not return 0 on equality of string , is this a bug ?

any help
 

8 More Discussions You Might Find Interesting

1. Programming

Bug has developed

Guys there is another bug that has developed.........now messaged above 6 bytes are trimmed and echoed back to client.After the first message the echo is not regular.I have put a loop in both client and server to check for closing.Moreover for connection close i also need to put another clause that... (3 Replies)
Discussion started by: arjunjag
3 Replies

2. Post Here to Contact Site Administrators and Moderators

Have I found a bug?

When searching for new posts, I see that my voting in one of the polls counts as a 'new post'. However, while the '<blah> minutes ago' entry updates correctly, the 'by <username>' is the last user to actually post a comment in the poll instead. Result: Poll: vB Guest Book 39... (4 Replies)
Discussion started by: Smiling Dragon
4 Replies

3. Shell Programming and Scripting

Is it a bug ..?

Hi All, I am using Red Hat Linux on my servers. The problem that I am facing is, sometimes the /opt usage on the server shows used percentage as 100% , when actually it is simply 20%. When I reboot the system, it comes back to 20%.Is this a bug in the system or my settings have gone wrong... (1 Reply)
Discussion started by: nua7
1 Replies

4. AIX

bug in 43 ???

xxxxserver# lsattr -El inet0 | grep 255.240.0.0,32.224.0.0,32.78.120.254 | grep '.40' route net,-hopcount,1,-netmask,255.240.0.0,32.224.0.0,32.78.120.254 How this is possible? (1 Reply)
Discussion started by: itik
1 Replies

5. UNIX for Dummies Questions & Answers

where's the bug?

#!/bin/bash if then #echo "infinite loop" exit 0 fi when I run this file I get the following error: ./test_infinite_loop: line 5: syntax error near unexpected token `fi' ./test_infinite_loop: line 5: `fi' :confused: (4 Replies)
Discussion started by: jon80
4 Replies

6. Programming

is this a bug of g++?

Hello, Im using the g++(g++ Ubuntu/Linaro 4.4.4-14ubuntu5 4.4.5) and im trying to compile a small snippet code and got into an endless loop.I recompiled that in VS2010 under Windows 7 and the answer is as expected.so i wonder is this a bug of g++?here is my code. #include<iostream> using... (5 Replies)
Discussion started by: homeboy
5 Replies

7. Shell Programming and Scripting

How to fix this bug?

Hi gurus, I have script as below: #!/bin/ksh while : do cat /dev/null > srcfile exit_time=`TZ=GMT-20 date +%Y%m%d1950` cur_time=`date +%Y%m%d%H%M` flag=1 if ; then ... (7 Replies)
Discussion started by: ken6503
7 Replies

8. UNIX for Advanced & Expert Users

A $(( expression )) bug?

This is for the big guns... I have been modifying AudioScope.sh to bring it inline with more current practices. I hit a bug which IS not present in the original code but was after modification. Shell check first:- #!/bin/sh txt="1234567890" echo "$(( $txt ))" echo "$(( ${#txt} - 1 ))" echo... (17 Replies)
Discussion started by: wisecracker
17 Replies
FGETS(3)						   BSD Library Functions Manual 						  FGETS(3)

NAME
fgets, gets -- get a line from a stream LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <stdio.h> char * fgets(char * restrict str, int size, FILE * restrict stream); char * gets(char *str); DESCRIPTION
The fgets() function reads at most one less than the number of characters specified by size from the given stream and stores them in the string str. Reading stops when a newline character is found, at end-of-file or error. The newline, if any, is retained. If any characters are read and there is no error, a '' character is appended to end the string. The gets() function is equivalent to fgets() with an infinite size and a stream of stdin, except that the newline character (if any) is not stored in the string. It is the caller's responsibility to ensure that the input line, if any, is sufficiently short to fit in the string. RETURN VALUES
Upon successful completion, fgets() and gets() return a pointer to the string. If end-of-file occurs before any characters are read, they return NULL and the buffer contents remain unchanged. If an error occurs, they return NULL and the buffer contents are indeterminate. The fgets() and gets() functions do not distinguish between end-of-file and error, and callers must use feof(3) and ferror(3) to determine which occurred. ERRORS
[EBADF] The given stream is not a readable stream. The function fgets() may also fail and set errno for any of the errors specified for the routines fflush(3), fstat(2), read(2), or malloc(3). The function gets() may also fail and set errno for any of the errors specified for the routine getchar(3). SECURITY CONSIDERATIONS
The gets() function cannot be used securely. Because of its lack of bounds checking, and the inability for the calling program to reliably determine the length of the next incoming line, the use of this function enables malicious users to arbitrarily change a running program's functionality through a buffer overflow attack. It is strongly suggested that the fgets() function be used in all cases. (See the FSA.) SEE ALSO
feof(3), ferror(3), fgetln(3), fgetws(3), getline(3) STANDARDS
The functions fgets() and gets() conform to ISO/IEC 9899:1999 (``ISO C99''). BSD
June 4, 1993 BSD
All times are GMT -4. The time now is 11:15 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy