(root)/
strace-6.5/
tests-mx32/
truncate.c
       1  /*
       2   * Copyright (c) 2015-2018 Dmitry V. Levin <ldv@strace.io>
       3   * Copyright (c) 2015-2021 The strace developers.
       4   * All rights reserved.
       5   *
       6   * SPDX-License-Identifier: GPL-2.0-or-later
       7   */
       8  
       9  #include "tests.h"
      10  #include "scno.h"
      11  
      12  #ifdef __NR_truncate
      13  
      14  # include <stdio.h>
      15  # include <unistd.h>
      16  
      17  int
      18  main(void)
      19  {
      20  	static const char fname[] = "truncate\nfilename";
      21  	static const char qname[] = "truncate\\nfilename";
      22  	const kernel_ulong_t len = (kernel_ulong_t) 0xdefaced0badc0deULL;
      23  	long rc;
      24  
      25  	if (sizeof(len) > sizeof(long))
      26  		rc = truncate(fname, len);
      27  	else
      28  		rc = syscall(__NR_truncate, fname, len);
      29  
      30  	printf("truncate(\"%s\", %llu) = %ld %s (%m)\n",
      31  	       qname, (unsigned long long) len, rc, errno2name());
      32  
      33  	puts("+++ exited with 0 +++");
      34  	return 0;
      35  }
      36  
      37  #else
      38  
      39  SKIP_MAIN_UNDEFINED("__NR_truncate")
      40  
      41  #endif