C++程序  |  44行  |  890 B

/* Copyright (c) 2012 The Chromium OS Authors. All rights reserved.
 * Use of this source code is governed by a BSD-style license that can be
 * found in the LICENSE file.
 */

#include <unistd.h>
#include <stdio.h>
#include <stdlib.h>
#include <sys/prctl.h>
#include <pthread.h>
#include <errno.h>

// little crc-like thing, compiler won't optimize it out
static int do_something(int seed, unsigned int loops) {
  int i;
  for (i = 0; i < loops; i++) {
    seed ^= i;
    seed = (seed << 1) ^ (i & 0x80000000 ? 0x04C11DB7 : 0);
  }
  return i;
}


int main(int argc, char* argv[]) {
  int loops;
  char *name;

  if (argc < 3) {
    fprintf(stderr, "usage: <name> <loops>\n");
    return 1;
  }

  name = argv[1];
  loops = strtoul(argv[2], NULL, 10);

  if (prctl(PR_SET_NAME, name) < 0) {
    perror("prctl(PR_SET_NAME)");
    return 1;
  }
  do_something(rand(), loops);

  return 0;
}