#include<unistd.h>
#include<fcntl.h>
int main()
{
close(STDOUT_FILENO);
close(STDERR_FILENO);
if((write(STDIN_FILENO,"arrgh!",6))==-1)
{
perror("error writing to file");
}
}
i get no output or error whatsoever
but when i perform the same exercise on my original code
i get
Code:
[c_d@localhost C scratchpad]$ ./a.out <file
error writing to file: Bad file descriptor
[c_d@localhost C scratchpad]$ echo watup | ./a.out
error writing to file: Bad file descriptor
Quote:
In this case, the shell opened /dev/tty for reading and writing and made all three initial fd's point to it.
i wanted to see that...but i m not able to make fcntl() work...
Code:
#include<unistd.h>
#include<fcntl.h>
#include<stdlib.h>
int main()
{
int x=2,file,fd;
if((file=open("fdvals",O_RDWR))==-1)
{
perror("error opening fdvals");
}
fd=fcntl(file,F_GETFD,0);
printf("fd=%d",fd);
fd=fcntl(STDOUT_FILENO,F_GETFD,0);
printf("fd=%d",fd);
}
I 'm using RH 7.2 Genome in the Network Configuration I change therer are two places one for static hostname for my machine and in DNS hostname I don't know what happen when restarting my PC when connecting using dialer I can't browse the Internet also I can't use sendmail .......Server timeout... (2 Replies)
The #1 Online Store for Louis Vuitton Replicas is: http://www.opichina.com.cn.
We offer Louis Vuitton Replicas and more! Whatever you call it: LV Bags, LV Replicas, Louis Vuitton Fake, Louis Vuitton Knockoffs, Louis Vuitton Bag, Louis Vuitton Purse, Louis Vuitton Wallet, Louis Vuitton Shoes,... (10 Replies)
Hi,
Could someone please tell me what would happen if the following were entered into the command line:
rm -i /books/*.*
rm /books/*
Many thanks! (3 Replies)
I have an unix id (AIX system) which is used to run a couple of processes. They also write some log files into a file system (that is not in the home directory of the user id, but in different location).
One bad day, the id was deleted accidentally. But the home directory, files and everything... (1 Reply)
I'm talking about boot process in multi-boot Linux perceptive.
Please tell me whether my explanation is right or wrong? If wrong, please explain.
"The BIOS checks the system and loads this initial bootstrapping code into
memory. This initial bootstrap code searches for an active partition... (0 Replies)
Hello,
Who actually wrote Professional Linux Programming of Wrox publication as there are two different sets of writers, one set consists of Jon Masters and Richard Blum and another set of writers is Neil Mathew with lots of other writers. Plz resolve it. I'm really confused.
Regards.. (0 Replies)
Hi everyone. Silly might be silly be I'm still new to bash. I'm trying to make an Alarm Clock for in the morning using my laptop i have wrote this Simple Script but i cant work out how to play it at a certain time.
#!/bin/bash
cd /home/josh/Music/Bruno_Mars/Hooligans/
cvlc... (8 Replies)
Well I wrote this in 2005 and uploaded to AMINET.as a commemoration of a machine that is still in use today.
It is now 29 years since this machne came into being. Phenominal and it is still being supported- WOW!
My A1200 is on 24/7 and I use it to test code developed on AMIGA emulators...
... (0 Replies)
Discussion started by: wisecracker
0 Replies
LEARN ABOUT ULTRIX
close
close(2) System Calls Manual close(2)Name
close - delete a descriptor
Syntax
close(fd)
int fd;
Description
The call deletes a descriptor from the per-process object reference table. If the descriptor is the last reference to the underlying
object, then the object is deactivated. For example, on the last close of a file, the current pointer associated with the file is lost.
On the last close of a socket, discards associated naming information and queued data. On the last close of a file holding an advisory
lock, the lock is released. For further information, see
A process's descriptors are automatically closed when a process exits, but because each process can have a limited number of active
descriptors, is necessary for programs that deal with many descriptors.
When a process forks, all descriptors for the new child process reference the same objects as they did in the parent process before the
fork. For further information, see If a new process is then to be run using the process would normally inherit these descriptors. Most of
the descriptors can be rearranged with the system call or deleted with before is called. However, if any descriptors are needed if the
fails, they must be closed if the execve succeeds. For this reason, the call, fcntl(d, F_SETFD, 1), is provided. This call arranges that a
descriptor is closed after a successful call. The call, fcntl(d, F_SETFD, 0), restores the default, which is to not close the descriptor.
When is used on a descriptor that refers to a remote file over NFS, and that file has been modified by using then any cached data is
flushed before returns. If an asynchronous write error has occurred previously with this remote file, or occurred as part of the flush
operation described above, then returns -1 and errno will be set to the error code. The return code from should be inspected by any program
that can over NFS.
Return Values
Upon successful completion, a value of 0 is returned. Otherwise, a value of -1 is returned, and the global integer variable, errno, is set
to indicate the error.
Diagnostics
The system call fails under the following conditions:
[EBADF] D is not an active descriptor.
[EINTR] The function was interrupted by a signal.
If an error occurs on an asynchronous write over NFS, the error cannot always be returned from a system call. The error code is returned
on or The following are NFS-only error messages:
[EACCESS] The requested address is protected, and the current user has inadequate permission to access it.
[ENOSPC] There is no free space remaining on the file system containing the file.
[EDQUOT] The user's quota of disk blocks on the file system containing the file has been exhausted.
[EIO] An I/O error occurred while reading from or writing to the file system.
[EROFS] The file is on a read-only file system.
[ESTALE] The fd argument is invalid because the file referred to by that file handle no longer exists or has been revoked.
[ETIMEDOUT] A write operation failed because the server did not properly respond after a period of time that is dependent on the
options.
See Alsoaccept(2), execve(2), fcntl(2), flock(2), fsync(2), open(2), pipe(2), socket(2), socketpair(2), write(2)close(2)