Sponsored Content
Full Discussion: C Brain Teaser
Top Forums Programming C Brain Teaser Post 302117280 by blowtorch on Friday 11th of May 2007 08:32:21 PM
Old 05-11-2007
Quote:
Originally Posted by Perderabo
Well then blowtorch could open the executable for writing and truncate it to zero bytes. That would not be "storing data".
Oh yeah, I tried this. It dies with a bus error and a dumped core. This shouldn't be happening. If Solaris is going to open a running executable for writing, then it should be able to truncate it as well. If it has to be consistent, it should either allow me to carry out any write related operation, or it should prevent me from performing any write related operation.

-Edit
I just tested this on FreeBSD (I use m-net.arbornet.org for this), and the unlink shown by Vino works, but my attempt to open the file for writing doesn't.
 

6 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Brain Bench Certification

Hi, Can anybody provide me Pointers to Practice tests or any Material to prepare for Brainbench certification in Unix Shell Scripting? Also how good is this Certification for UNIX programmers. Is it worth it? I'm planning to take this certification in 2 weeks. Kindly let me know all the pros... (0 Replies)
Discussion started by: pavan_emani
0 Replies

2. Shell Programming and Scripting

This might be a programming teaser!

Hi gurus, I have done my best to be as precisely as possible with this. Besides giving the format of file a and file b and the result file I have also given the algorithm as I have figured out. I will try to do this and I hope that some of you could help me to solve this or better yet... (1 Reply)
Discussion started by: ljankok
1 Replies

3. Programming

Brain Teaser Extended

Hi Gurus, To the Brain Teaser, if I add another condition, say the executable should not be altered, how the program should be altered? (no perl please, purely C). I forgot to mention this condition my staff had mentioned. ( forgot then and got now :D ) The program executed the first time... (4 Replies)
Discussion started by: vrk1219
4 Replies

4. What is on Your Mind?

The Human Brain project

A global group of scientists are spending the next ten years and a billion dollars to try and develop a computer simulation of the brain: https://www.humanbrainproject.eu/ I always found it fascinating that the brain can understand itself. This almost sounds like in a few years the computer... (0 Replies)
Discussion started by: figaro
0 Replies

5. Shell Programming and Scripting

sed regexp teaser

G'day, Here's a teaser for a sed guru, which I surely am not one, as even my basic sed skills are rusted from years of not practising ... lol Ok ... we have a string of digits such as: 632413741610252847552619172459483022433027602515212950543016701812771409213148672112 we want it split... (9 Replies)
Discussion started by: naderra
9 Replies

6. What is on Your Mind?

Cyber Dystopia Teaser (720 HD)

Working on a new cybersecurity, dystopian world series and made a short 2 min teaser today. Cyber Dystopia (720 HD) https://www.youtube.com/watch?v=g9Ca07J_YC8 If anyone has any ideas for the story, please write out some story lines in the comments and join the production team! (1 Reply)
Discussion started by: Neo
1 Replies
TRUNCATE(2)						      BSD System Calls Manual						       TRUNCATE(2)

NAME
truncate, ftruncate -- truncate a file to a specified length LIBRARY
Standard C Library (libc, -lc) SYNOPSIS
#include <unistd.h> int truncate(const char *path, off_t length); int ftruncate(int fd, off_t length); DESCRIPTION
truncate() causes the file named by path or referenced by fd to have a size of length bytes. If the file previously was larger than this size, the extra data is discarded. If it was previously shorter than length, its size is increased to the specified value and the extended area appears as if it were zero-filled. With ftruncate(), the file must be open for writing; for truncate(), the process must have write permissions for the file. RETURN VALUES
A value of 0 is returned if the call succeeds. If the call fails a -1 is returned, and the global variable errno specifies the error. ERRORS
Error return codes common to truncate() and ftruncate() are: [EISDIR] The named file is a directory. [EROFS] The named file resides on a read-only file system. [ETXTBSY] The file is a pure procedure (shared text) file that is being executed. [EIO] An I/O error occurred updating the inode. [ENOSPC] There was no space in the filesystem to complete the operation. Error codes specific to truncate() are: [ENOTDIR] A component of the path prefix is not a directory. [ENAMETOOLONG] A component of a pathname exceeded {NAME_MAX} characters, or an entire path name exceeded {PATH_MAX} characters. [ENOENT] The named file does not exist. [EACCES] Search permission is denied for a component of the path prefix, or the named file is not writable by the user. [ELOOP] Too many symbolic links were encountered in translating the pathname. [EFAULT] path points outside the process's allocated address space. Error codes specific to ftruncate() are: [EBADF] The fd is not a valid descriptor. [EINVAL] The fd references a socket, not a file, or the fd is not open for writing. SEE ALSO
open(2) STANDARDS
Use of truncate() to extend a file is an IEEE Std 1003.1-2004 (``POSIX.1'') extension, and is thus not portable. Files can be extended in a portable way seeking (using lseek(2)) to the required size and writing a single character with write(2). HISTORY
The truncate() and ftruncate() function calls appeared in 4.2BSD. BUGS
These calls should be generalized to allow ranges of bytes in a file to be discarded. BSD
March 16, 2008 BSD
All times are GMT -4. The time now is 10:47 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy