Beispiel #1
0
int main(int argc, char** argv, char** envp)
{
    char buf[1024] = {0};
    int num_read = 0;
    int current = 0;
    struct dirent* tmp = (struct dirent*)buf;
    int fd = open("/proc/self", O_RDONLY);
    num_read = dent_me(fd, tmp, sizeof(buf));
     
    while(current < num_read) {
        fprintf(stdout, "%s\n", tmp->d_name);
        current += tmp->d_reclen; 
        tmp = (struct dirent*)(buf + current);     
    } 
    
    close(fd);
    unsigned long s = file_size("/proc/self/environ");
    printf("File Size: %lu\n", s);
    int a = 10;
    add_nums(&a, 20);
    printf("%d\n", a);
    printf("%d\n", add_2(10, 20));
    char* out = (is_set(&stuff)) ? "Is set!\n" : "Isn't set!\n";
    printf(out);
    out = (is_set(&stuff)) ? "Is set!\n" : "Isn't set!\n";
    printf(out);
    return 0;
}
int mpfq_p_127_735_inv(mpfq_p_127_735_dst_field k, mpfq_p_127_735_dst_elt z, mpfq_p_127_735_src_elt x) {
#if 1
  invmod_2(z, x, k->p);
#else
  mp_limb_t s1[2+1], s2[2+1];
  mp_limb_t r1[2+1], r2[2+1];
  mp_size_t r1n, r2n;
  int i;

  add_2(s1, x, k->p);
  mpfq_p_127_735_copy(k, s2, k->p);

  if (cmp_2(s1, s2) == 0) {
    fprintf(stderr, "error in inv_fp_2: division by 0\n");
    exit(1);
  }

  assert (cmp_2(s1, s2) > 0);

  r1n = mpn_gcdext(r1, r2, &r2n, s1, 2, s2, 2);

  // Non invertible element ?
  if ((r1n != 1) || (r1[0] != 1UL)) {
    fprintf(stderr, "warning in inv_fp_2: non invertible element\n");
    if ((r1n <= 1) && (r1[0] == 0UL)) {
      fprintf(stderr, "hum... in fact this is a division by 0\n");
      exit(1);
    } else {
      mpn2mpz(k->factor, r1, r1n);
      return 1;
    }
  }

  // OK. GCD is one. make the result positive and put it in z.
  assert ((r1n == 1) && (r1[0] == 1UL));

  if (r2n < 0) {
    for (i = -r2n; i < 2; ++i)
      r2[i] = 0UL;
    sub_2(r2, k->p, r2);
  } else {
    for (i = r2n; i < 2; ++i)
      r2[i] = 0UL;
  }

  mpfq_p_127_735_copy(k, z, r2);
#endif
}
Beispiel #3
0
void turn() //обработка ходов
{
	int direction = 0;
	bool moved;
	while (true)
	{
		direction = controls();
		moved = shift(direction);
		int number = cells_check();
		if (!move_check() && !number)
		{
			lose();
			return;
		}
		if (moved)
		{
			add_2(number);
			printfield();
			Sleep(50);
		}
	}
}
Beispiel #4
0
static void dess_ming(unsigned char key[4],unsigned char Source[4],unsigned char dest[4])
{
	unsigned char x0, x1, x2, x3, y0, y1, y2, y3, m, n, add1, add2;
	x0 = key[0];
	x1 = key[1];
	x2 = key[2];
	x3 = key[3];
	y0 = Source[0];
	y1 = Source[1];
	y2 = Source[2];
	y3 = Source[3];
	m = x0 ^ x1;
	add1 = m;
	add2 = y2;
	m = add_2(add1, add2);
	add1 = x0;
	add2 = x1;
	n = add_2(add1, add2);
	add1 = n;
	add2 = y3;
	n = add_2(add1, add2);
	m = m ^ y0;
	n = n ^ y1;
	y0 = m;
	y1 = n;
	add1 = m;
	add2 = x1 ^ x2;
	m = add_2(add1, add2);
	add1 = x1;
	add2 = x2;
	add1 = add_2(add1, add2);
	add2 = n;
	n = add_2(add1, add2);
	m = m ^ y2;
	n = n ^ y3;
	y2 = m;
	y3 = n;
	add1 = y1;
	add2 = x2 ^ x3;
	m = add_2(add1, add2);
	add1 = x2;
	add2 = x3;
	add1 = add_2(add1, add2);
	add2 = y0;
	n = add_2(add1, add2);
	m = m ^ y3;
	n = n ^ y2;
	y2 = m;
	y3 = n;
	add1 = m;
	add2 = x0 ^ x3;
	m = add_2(add1, add2); 
	add1 = x0;
	add2 = x3;
	add1 = add_2(add1, add2);
	add2 = n;
	n = add_2(add1, add2);
	m = m ^ y1;
	n = n ^ y0;
	y0 = m;
	y1 = n;
	add1 = y3;
	add2 = x0 ^ x3;
	m = add_2(add1, add2);
	add1 = x0;
	add2 = x3;
	add1 = add_2(add1, add2);
	add2 = y2;
	n = add_2(add1, add2);
	m = m ^ y1;
	n = n ^ y0;
	y0 = m;
	y1 = n;
	add1 = m;
	add2 = x2 ^ x3;
	m = add_2(add1, add2);
	add1 = x2;
	add2 = x3;
	add1 = add_2(add1, add2);
	add2 = n;
	n = add_2(add1, add2);
	m = m ^ y3;
	n = n ^ y2;
	y2 = m;
	y3 = n;
	add1 = y1;
	add2 = x1 ^ x2;
	m = add_2(add1, add2);
	add1 = x1;
	add2 = x2;
	add1 = add_2(add1, add2);
	add2 = y0;
	n = add_2(add1, add2);
	m = m ^ y3;
	n = n ^ y2;
	y2 = m;
	y3 = n;
	add1 = m;
	add2 = x0 ^ x1;
	m = add_2(add1, add2);
	add1 = x0;
	add2 = x1;
	add1 = add_2(add1, add2);
	add2 = n;
	n = add_2(add1, add2);
	m = m ^ y1;
	n = n ^ y0;
	y0 = m;
	y1 = n;
	dest[0] = y0;
	dest[1]= y1;
	dest[2] = y2;
	dest[3] = y3;
}