Sponsored Content
Full Discussion: Why I don't get any output?
Top Forums Programming Why I don't get any output? Post 302089080 by Sharmin on Saturday 16th of September 2006 06:10:44 PM
Old 09-16-2006
Hello, but I want to know how to use sscanf( ) here

Quote:
Originally Posted by wwwdev
Hi Sharmin,

the simple way is

Code:
#include <stdio.h>
#include <string.h>


main(int argc, char *argv[])
{
    FILE *fp;
    char buf[256], *p;

    if(argc < 2){
	printf("Bad command line\n");
	exit(1);
    }
    if(NULL == (fp = fopen(argv[1], "rt"))){
	printf("Can't open %s\n", argv[1]);
	exit(1);
    }
    for(;fgets(buf, 255, fp);){
	if(buf == strstr(buf, "model name")){
	    if(NULL != (p = strchr(buf, ':')))
		printf("%s\n", p + 1);
	    break;
	}
    }
    fclose(fp);

    return 0;
}

Hello,

thank you.
what does "rt" means at fopen line?

But, I want to to know to how to use sscanf functinality instead of strstr.

Please let me know how to extract the string with sscanf and then print it effectively. But thank you for your time. Hoping to get reply back from you.
 

5 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Don't allow to editing !!!

Hi All, Assume that there is file1 file,userA and userB have got read,write and execute permission for file1. when userA open file1, userB cant change(write,editing file etc...) content of file1. after userA exit of file1 , userB can change(write, editing file etc..). Shortly i want... (1 Reply)
Discussion started by: temhem
1 Replies

2. Programming

std::cout and gfortran print*, don't output to the screen

I am not sure where to post this other than here. I am trying to figure out why an app gives different output when compiled under Ubuntu 10.10 and CentOS 5.5. I am pretty sure that the issue is that the Cent version has gcc 4.1 installed, while Ubuntu has gcc 4.4. I am trying to print from some... (20 Replies)
Discussion started by: LMHmedchem
20 Replies

3. Shell Programming and Scripting

AIX -/usr/bin/expect shows output Don't know why.

Hi, I have been programming with the expect program for a while now and have create a series of menu driven checks for the operations team. One thing I have noticed is that I call a remote script and pass parameters and this is display on the screen....for example. Within the script ... (0 Replies)
Discussion started by: yakky
0 Replies

4. Shell Programming and Scripting

Find command don't output anything, but file is there

Please if You can help me debug why nothing is found by this command? # echo "Zeus Robot" >> /home/vps/190/test # cat /home/vps/190/test Zeus Robot # find /home/vps -type f -mtime 2 -size -1000k -exec grep -l "Zeus Robot" {} \; >> out # cat out # cat /home/vps/190/test Zeus Robot Why... (6 Replies)
Discussion started by: postcd
6 Replies

5. Shell Programming and Scripting

A shell script to run a script which don't get terminated and send a pattern from the output by mail

Hi Guys, I am very new to shell script and I need your help here to write a script. Actually, I have a script abc.sh which don't get terminated itself. So I need to design a script to run this script, save the output to a file, search for a given string in the output and if it exists send those... (11 Replies)
Discussion started by: Sambit Sahu
11 Replies
GETSERVENT_R(3) 					     Linux Programmer's Manual						   GETSERVENT_R(3)

NAME
getservent_r, getservbyname_r, getservbyport_r - get service entry (reentrant) SYNOPSIS
#include <netdb.h> int getservent_r(struct servent *result_buf, char *buf, size_t buflen, struct servent **result); int getservbyname_r(const char *name, const char *proto, struct servent *result_buf, char *buf, size_t buflen, struct servent **result); int getservbyport_r(int port, const char *proto, struct servent *result_buf, char *buf, size_t buflen, struct servent **result); Feature Test Macro Requirements for glibc (see feature_test_macros(7)): getservent_r(), getservbyname_r(), getservbyport_r(): _BSD_SOURCE || _SVID_SOURCE DESCRIPTION
The getservent_r(), getservbyname_r(), and getservbyport_r() functions are the reentrant equivalents of, respectively, getservent(3), get- servbyname(3), and getservbyport(3). They differ in the way that the servent structure is returned, and in the function calling signature and return value. This manual page describes just the differences from the nonreentrant functions. Instead of returning a pointer to a statically allocated servent structure as the function result, these functions copy the structure into the location pointed to by result_buf. The buf array is used to store the string fields pointed to by the returned servent structure. (The nonreentrant functions allocate these strings in static storage.) The size of this array is specified in buflen. If buf is too small, the call fails with the error ERANGE, and the caller must try again with a larger buffer. (A buffer of length 1024 bytes should be sufficient for most applications.) If the function call successfully obtains a service record, then *result is set pointing to result_buf; otherwise, *result is set to NULL. RETURN VALUE
On success, these functions return 0. On error, a positive error number is returned. On error, record not found (getservbyname_r(), getservbyport_r()), or end of input (getservent_r()) result is set to NULL. ERRORS
ENOENT (getservent_r()) No more records in database. ERANGE buf is too small. Try again with a larger buffer (and increased buflen). CONFORMING TO
These functions are GNU extensions. Functions with similar names exist on some other systems, though typically with different calling sig- natures. EXAMPLE
The program below uses getservbyport_r() to retrieve the service record for the port and protocol named in its first command-line argument. If a third (integer) command-line argument is supplied, it is used as the initial value for buflen; if getservbyport_r() fails with the error ERANGE, the program retries with larger buffer sizes. The following shell session shows a couple of sample runs: $ ./a.out 7 tcp 1 ERANGE! Retrying with larger buffer getservbyport_r() returned: 0 (success) (buflen=87) s_name=echo; s_proto=tcp; s_port=7; aliases= $ ./a.out 77777 tcp getservbyport_r() returned: 0 (success) (buflen=1024) Call failed/record not found Program source #define _GNU_SOURCE #include <ctype.h> #include <netdb.h> #include <stdlib.h> #include <stdio.h> #include <errno.h> #include <string.h> #define MAX_BUF 10000 int main(int argc, char *argv[]) { int buflen, erange_cnt, port, s; struct servent result_buf; struct servent *result; char buf[MAX_BUF]; char *protop; char **p; if (argc < 3) { printf("Usage: %s port-num proto-name [buflen] ", argv[0]); exit(EXIT_FAILURE); } port = htons(atoi(argv[1])); protop = (strcmp(argv[2], "null") == 0 || strcmp(argv[2], "NULL") == 0) ? NULL : argv[2]; buflen = 1024; if (argc > 3) buflen = atoi(argv[3]); if (buflen > MAX_BUF) { printf("Exceeded buffer limit (%d) ", MAX_BUF); exit(EXIT_FAILURE); } erange_cnt = 0; do { s = getservbyport_r(port, protop, &result_buf, buf, buflen, &result); if (s == ERANGE) { if (erange_cnt == 0) printf("ERANGE! Retrying with larger buffer "); erange_cnt++; /* Increment a byte at a time so we can see exactly what size buffer was required */ buflen++; if (buflen > MAX_BUF) { printf("Exceeded buffer limit (%d) ", MAX_BUF); exit(EXIT_FAILURE); } } } while (s == ERANGE); printf("getservbyport_r() returned: %s (buflen=%d) ", (s == 0) ? "0 (success)" : (s == ENOENT) ? "ENOENT" : strerror(s), buflen); if (s != 0 || result == NULL) { printf("Call failed/record not found "); exit(EXIT_FAILURE); } printf("s_name=%s; s_proto=%s; s_port=%d; aliases=", result_buf.s_name, result_buf.s_proto, ntohs(result_buf.s_port)); for (p = result_buf.s_aliases; *p != NULL; p++) printf("%s ", *p); printf(" "); exit(EXIT_SUCCESS); } SEE ALSO
getservent(3), services(5) COLOPHON
This page is part of release 3.25 of the Linux man-pages project. A description of the project, and information about reporting bugs, can be found at http://www.kernel.org/doc/man-pages/. GNU
2008-08-19 GETSERVENT_R(3)
All times are GMT -4. The time now is 12:46 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy