02-15-2012
It expects integer size, and just giving it shorts doesn't warn it that you're giving it shorts. With &, you're giving it an address remember, so it can't know the size. So it crams 4 bytes of data into an address where you've got a 2-byte variable, overwriting 2 bytes of random data after it -- possibly your other variable there, producing the zero.
There are size qualifiers to the expressions if you want to give it anything other than an integer, see man 3 printf.
10 More Discussions You Might Find Interesting
1. Programming
Please delete this thread. (0 Replies)
Discussion started by: jxh461
0 Replies
2. Shell Programming and Scripting
Yes , I have to find a file in unix without using any find or where commands.Any pointers for the same would be very helpful as i am beginner in shell scritping and need a solution for the same.
Thanks in advance.
Regards
Jatin Jain (10 Replies)
Discussion started by: jatin.jain
10 Replies
3. Programming
I have a string
Form this string, I want to extract
I am unable to do that with sscanf because of the space between the words. What else can I use?
#include <stdio.h>
char buf_2;
int
main()
{
char *buf_1 = "\\\\?\\whats going on";
sscanf(buf_1,... (4 Replies)
Discussion started by: the_learner
4 Replies
4. Shell Programming and Scripting
i 've noticed the following difference between freebsd cp and gnu cp
from the freebsd cp man page:
-R ... If the source_file ends in a /, the contents of the directory are copied rather than
the directory itself. ...
on gnu cp from the man pagewhile on gnu cp manpage:
‘-r'... (2 Replies)
Discussion started by: aegis
2 Replies
5. Programming
Hi everybody,
i need help with this function, i'm programming in CGI with C and i can't make this work.
QUERY_STRING is something like: user=MYUSER&pass=MYPASS
So, what i want is to store the strings containing the username and the password into str1 and str2 respetively, here's the... (4 Replies)
Discussion started by: Zykl0n-B
4 Replies
6. Programming
I need to match a float inside a very long string (about 5000 chars) with sscanf. (I trimmed the string in this example.) I can't seem to match all the chars that come before and after the float.
int main(void)
{
char A = "";
strcat(A, " hello world! WORD' name='5.3498' hello world! ... (1 Reply)
Discussion started by: limmer
1 Replies
7. Programming
sscanf does not stop at the first "&". How can I extract "doe" ?
char A = "name=john&last=doe&job=vacant&";
char B = "last";
char C = "";
char *POINTER = strstr(A, B);
sscanf(POINTER + strlen(B), "=%s%*", C);
printf("%s\n", C); // doe&job=vacant& (2 Replies)
Discussion started by: limmer
2 Replies
8. Programming
How can I separetely extract the string and int after "dribble" ? (sscanf must limit TEXT to 9 chars to avoid buffer overflows.)
How come this code does not work with "dribbletext08" but does with "dribbletext05" ?
int main(void)
{
char TEXT = "";
int NUMBER = 0;
... (2 Replies)
Discussion started by: cyler
2 Replies
9. Programming
fg = foreground bg = background
I have a cobol program that I start with a very simple script.
The script is not at fault as it has not changed and the program worked in fg and bg before.
I have altered the logging in the program and moved my cursor declare to working storage.
The program runs... (6 Replies)
Discussion started by: Bruble
6 Replies
10. Programming
Hello, I have formatted lines delimited by colon ":", and I need to parse the line into two parts with sscanf() with format specifiers.
infile.txt:
Sample Name: sample1
SNPs : 91
MNPs : 1
Insertions : 5
Deletions ... (13 Replies)
Discussion started by: yifangt
13 Replies
GSM(3) Library Functions Manual GSM(3)
NAME
gsm_create, gsm_destroy, gsm_encode, gsm_decode -- GSM 06.10 lossy sound compression
SYNOPSIS
#include "gsm.h"
gsm gsm_create();
void gsm_encode(handle, src, dst)
gsm handle;
gsm_signal src[160];
gsm_frame dst;
int gsm_decode(handle, src, dst)
gsm handle;
gsm_frame src;
gsm_signal dst[160];
void gsm_destroy(handle)
gsm handle;
DESCRIPTION
Gsm is an implementation of the final draft GSM 06.10 standard for full-rate speech transcoding.
gsm_create() initializes a gsm pass and returns a 'gsm' object which can be used as a handle in subsequent calls to gsm_decode(),
gsm_encode() or gsm_destroy().
gsm_encode() encodes an array of 160 13-bit samples (given as gsm_signal's, signed integral values of at least 16 bits) into a gsm_frame of
33 bytes. (gsm_frame is a type defined as an array of 33 gsm_bytes in gsm.h.)
gsm_decode() decodes a gsm_frame into an array of 160 13-bit samples (given as gsm_signals), which sound rather like what you handed to
gsm_encode() on the other side of the wire.
gsm_destroy() finishes a gsm pass and frees all storage associated with it.
Sample format
The following scaling is assumed for input to the algorithm:
0 1 11 12
S..v..v..v..v..v..v..v..v..v..v..v..v..*..*..*
Only the top 13 bits are used as a signed input value.
The output of gsm_decode() has the three lower bits set to zero.
RETURN VALUE
gsm_create() returns an opaque handle object of type gsm, or 0 on error. gsm_decode() returns -1 if the passed frame is invalid, else 0.
EXAMPLE
#include "gsm.h"
gsm handle;
gsm_frame buf;
gsm_signal sample[160];
int cc, soundfd;
play() { /* read compressed data from standard input, write to soundfd */
if (!(handle = gsm_create())) error...
while (cc = read(0, (char *)buf, sizeof buf)) {
if (cc != sizeof buf) error...
if (gsm_decode(handle, buf, sample) < 0) error...
if (write(soundfd, sample, sizeof sample) != sizeof sample)
error...
}
gsm_destroy(handle);
}
record() { /* read from soundfd, write compressed to standard output */
if (!(handle = gsm_create())) error...
while (cc = read(soundfd, sample, sizeof sample)) {
if (cc != sizeof sample) error...
gsm_encode(handle, sample, buf);
if (write(1, (char *)buf, sizeof buf) != sizeof sample)
error...
}
gsm_destroy(handle);
}
BUGS
Please direct bug reports to jutta@cs.tu-berlin.de and cabo@cs.tu-berlin.de.
SEE ALSO
toast(1), gsm_print(3), gsm_explode(3), gsm_option(3)
GSM(3)