10-23-2007
Two basic solutions
1. keep reading in 512 byte buffers and make a linked list of those buffers where the struct looks something like
struct buffer { struct buffer *next; long length; unsigned char data[512]; };
2. allocate a block using malloc of length 512 bytes and read into that, if you did not fill the buffer then read again in the remaining space
if you get a read of zero bytes then that is the end of stream indicator
else you still have more to read, reallocate the ptr with a size+=512, and go back to reading again.
9 More Discussions You Might Find Interesting
1. Programming
hi
i want to write a simple io-benchmark for raw devices, especially for
harddisks, vx-volumes and md-volumes on solaris.
is there a unix system call to get the size of the device? the 'stat' system call
reports the size for regaular files but not for block or devices. On Solaris the... (2 Replies)
Discussion started by: guenter
2 Replies
2. Programming
hello
i have a program in C (Unix - SOlaris5.7), and i have the next question:
i have a lot of char variable, and i want store their values in a char array. The problem is what i donīt know how to put the char variable's value into the array, and i don`t know how to define the array
please... (4 Replies)
Discussion started by: DebianJ
4 Replies
3. Programming
hi,
I have variable like,
char keyword = "TRANSPARENCY ";
while passing this variable to some function, first character of variable becomes null, but rest of characters still exist. Why this happens or something wrong with declaration. Their is no error while compiling & running... (2 Replies)
Discussion started by: avadhani
2 Replies
4. Programming
Hi All
I am simulating a problem in the production where i faced a situation.
Please find the following example program which i simulated.
#include<stdio.h>
#include<stdlib.h>
#include<string.h>
int main()
{
char str1; (3 Replies)
Discussion started by: dhanamurthy
3 Replies
5. Programming
Hi
I am passing or want to pass value of a char array, so that even thoug the called routine is changing the values the calling function should not see the values changed, meaning only copy should be passed
Here is the program
#include<iostream.h>
#include<string.h>
void f(char a);
int... (5 Replies)
Discussion started by: rkraj
5 Replies
6. Programming
I'm doing some coding in C++
Want to have a long empty string like below
const char ModMisfit :: DelStr = "\r \r";
However due to the long blank the line is very long. Is there any way to avoid this and keep the... (5 Replies)
Discussion started by: kristinu
5 Replies
7. Programming
i have an array like
#define NUM 8
....
new_socket_fd = accept(socket_fd, (struct sockaddr *) &cli_addr, &client_length);
char *items = {"one", "two", "three", "four", "five", "six", "seven", "eight"};
char *item_name_length = {"3", "3", "5", "4", "4", "3", "5", "5"};
... (1 Reply)
Discussion started by: omega666
1 Replies
8. Programming
cat int.c
int main() {
unsigned char wwn;
wwn=50;
wwn=00;
wwn=53;
wwn=30;
wwn=08;
wwn=09;
wwn=82;
wwn=17;
printf("WWN: %02x:%02x:%02x:%02x:%02x:%02x:%02x:%02x\n ",
wwn,
wwn,
wwn,
wwn,
wwn,... (8 Replies)
Discussion started by: powyama
8 Replies
9. Programming
I want to return a char array to the main() function, but its returning garbage value.
#include<stdio.h>
//#include<conio.h>
#include<string.h>
char* strtrmm();
int main()
{
char str1,c1;
printf("\n Enter the string:");
gets(str1);
//strtrmm(str1);
printf("%s",strtrmm(str1));... (2 Replies)
Discussion started by: zinat
2 Replies
LEARN ABOUT DEBIAN
io_pipe
io_pipe(3) Library Functions Manual io_pipe(3)
NAME
io_pipe - create a Unix pipe
SYNTAX
#include <io.h>
int io_pipe(int64 pfd[2]);
DESCRIPTION
io_pipe creates a new UNIX ``pipe.'' The pipe can receive data and provide data; any bytes written to the pipe can then be read from the
pipe in the same order.
A pipe is typically stored in an 8192-byte memory buffer; the exact number depends on the UNIX kernel. Bytes are written to the end of the
buffer and read from the beginning of the buffer. Once a byte has been read, it is eliminated from the buffer, making space for another
byte to be written; readers cannot ``rewind'' a pipe to read old data. Once 8192 bytes have been written to the buffer, the pipe will not
be ready for further writing until some of the bytes have been read. Once all the bytes written have been read, the pipe will not be ready
for further reading until more bytes are written.
io_pipe sets d[0] to the number of a new descriptor reading from the pipe, and sets d[1] to the number of a new descriptor writing to the
pipe. It then returns 1 to indicate success. If something goes wrong, io_pipe returns 0, setting errno to indicate the error; in this case
it frees any memory that it allocated for the new pipe, and it leaves d alone.
SEE ALSO
io_readfile(3), io_createfile(3), io_socketpair(3)
io_pipe(3)