Why...? Because 'char *string1' is a pointer: A four-byte(on my system, 8-byte on yours) integer that describes a location in memory. The four bytes 'stri' aren't likely to refer to any valid memory, and even if we win the lottery and find a valid location, it probably won't be pointing to a location containing "string1\n".
So we do this:
What does it print now?
Oh, it stuffed it all into 'string1' because it didn't stop when the string did.
C library calls will not give your structures the special treatment to put anything but the file's literal contents in that memory? How would it? It doesn't know what your structure is:
It only knows it was told, 'put this many bytes at this memory', and it did.
C does not know your data structures. Only your own functions do, and then, only if you tell them what it is, and it's still up to you to use them -- it does what you tell it, nothing more. If you want things read in any way other than a raw block, you have to write that.
"C library calls do not know your data structures" is a ready answer to a lot of questions. Like, "will free() deallocate pointers inside a structure pointer I give it, or just the structure itself?" It does not, indeed cannot -- it would need to know what's inside it, and it doesn't. All it has is the 4/8 bytes of the pointer you passed into it, and a list(well, heap) of what pointers it gave you before.
Last edited by Corona688; 02-10-2014 at 02:40 PM..
Hello,
I am having a problem setting a range of numbers for the "case" structure.
I can use with no problems, but
when I use it doesn't work???
Does the case struture allow numeric ranges?
eg:
echo -e "enter number between 0 and 60: \c"
read $answer
case $answer in
) echo... (2 Replies)
Hi,
I want to read the task_struct structure in Linux in order to get the names & pids of all processes.
How can this be done??
Thanks in adv,
molu (4 Replies)
Hi folks,
Need your help.
I am writing a KSH script to read a few commands from a file & execute.
I am using the following code to read the file line by line & excute each command. When I am printing each line I see it is printing properly but while excuting, the particular "ps" command... (5 Replies)
Hi All,
These are the two ways i tried to read file but i getting work with second one not with the first.
char buf; // Defining space for buf
ctrlfnum = fopen(filename_arr.control_fname,"r");
1) n = fread(buf,sizeof(buf),1,ctrlfnum); ============== (not works)
2) n =... (4 Replies)
Hi
When im listing (ls -al ) its listing directories without / at the end of directories
dir1 dir2 dir3
and i need to list directories with
dir1/ dir2/ dir3/ and this should not be made by command ls -F
/ should be embedded at the last
since one of the scripts reads directories... (1 Reply)
Hi,
I have a following problem in C.
I have a function A in which I used to call another function (function B) and pass an array of values through array variable by using below:-
foo=functionB(array);
In functionB, i used to just return some "values" (e.g return num;) in order to pass... (1 Reply)
hi
One of our SCO 5.0.6 server is crashing every second or third time during rebooting with kernel panic.
According to this SCO manual:
http://wdb1.sco.com/kb/showta?taid=106181&qid=1689366546&sid=504668569&pgnum=1
I've saved dump image into a floppy and I've done the following steps:
#... (0 Replies)
How can I use malloc with copying/creating files?
Is this the correct way?
I'm a bit confused...
int in_fd;
int *out_fd;
char buffer;
in_fd = open(av, O_RDONLY);
out_fd = malloc(strlen(av)+strlen(av)+2);
sprintf"(buffer,%s/%s", av,av); (5 Replies)
I am using Solaris 10u11 on x86 machine, i am root, i want to use a gcc compiled code to use read10/write10 function of USCSI solaris library to access data from a normal USB mass storage device.
I am able to open a device prior to sending USCSI command via IOCTL.
IOCTL command works ok as... (0 Replies)