20 #define MAX_NUMS ((INT_MAX >> 5) + 1)
31 int main(
int argc,
char** argv)
33 const char* usage =
"usage: %s filename\n";
37 static unsigned int have_num[
MAX_NUMS];
46 assert(
sizeof(
int) == 4);
52 fprintf(stderr, usage, argv[0]);
55 memset(have_num, 0,
sizeof(have_num));
59 if (0 > (fd = open(argv[1], O_RDONLY)))
67 while(0 < (n = read(fd, buf,
sizeof(buf))))
85 int idx = buf[i] >> 5;
86 unsigned int msk = 1 << (buf[i] & 31);
99 fprintf(stderr,
"Total numbers read = %d\n", total_nums);
103 for(
int k = 0; k < 31; k++)
104 if (have_num[i] & (1 << k))
105 printf(
"%d\n", (i << 5) + k);
#define BUF_NUMS
read buffer size
int main(int argc, char **argv)
Program to read a file with binary positive 32 bit integers, sort the numbers and print them sorted...
NUMS * nums_read(const char *filename)
Read numbers into data structure.
#define MAX_NUMS
Maximum number of 32 bit ints we need to store bits.