Sponsored Content
Top Forums Programming Cannot read a file with read(fd, buffer, buffersize) function Post 302324786 by achenle on Thursday 11th of June 2009 10:02:41 PM
Old 06-11-2009
You can't read from or write to a file descriptor after you close it. You need to remove the close() statements:

Code:
           .
           .
           .
          close (fRead);  <--- 
          if (fPadded =creat (argv[2], S_IRWXU) ==-1 )
          {
                    printf ("An error has occurred writing the file.\n");
                    return 0;
          }
          else
          {
             close (fPadded);   <---
               .
               .
               .

 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Increase the buffer size to read lengthy lines

Hi All, I am trying to read output from a command. The output format is as follows: Thursday 13 Mar 2008 Information This is sample text Friday 14 Mar 2008 Warning This is one more sample text First line contains informtation (date etc) and the 2nd line contains some information. ... (3 Replies)
Discussion started by: ssunda6
3 Replies

2. Programming

read a file wich fscanf() in a function

I use fopen, fscanf, fclose to read a file. It can work well. since many files should be read, a function is created with the same code. But in the function, fscanf can not work well. for example, the first line of the the file is: > filename but the fscanf will give: 207/23/eee/34 it appears... (2 Replies)
Discussion started by: cdbug
2 Replies

3. Shell Programming and Scripting

Expect: How to read buffer for spawn

Hi All, I have to write one expect script to login to one system. I am using set timeout -1 match_max 100000 spawn ssh root@hostname Now when I do spawn ssh to that host it send some warning message and one challenge Challenge: 111-2345 I need to read this challenge value and has... (1 Reply)
Discussion started by: Lokesh Agrawal
1 Replies

4. Shell Programming and Scripting

Read Table,View,Package,Function and Procedure Name in a File

Hi I am new to Unix shell scripting. But i need help to slove the below issue. Issue description: I want to read table, view names and package names in a file my plan to find the table name is : search "From" key word find the table or view To find the packge name : Search "Package... (5 Replies)
Discussion started by: sboss
5 Replies

5. Programming

Maximum buffer size for read()

Hi friends, Hope everybody is fine. First have a look at my code, then we will talk about it. $ cat copy.c #include <stdio.h> #define PERMS 0644 /* RW for owner, R for group, others */ #define BUFSIZE 1 char *progname; int main(int argc,char * argv) { int f1, f2, n; ... (4 Replies)
Discussion started by: gabam
4 Replies

6. UNIX for Advanced & Expert Users

Input buffer and READ

Hello everyone, Can someone please explain the input buffer behaviour for the read command in ksh93 on AIX? I have 'googled' for weeks now, and did not find a satisfactory answer or solution to my dilemma. I have the following code: STTY=$(stty -g) if ;then stty -echo -icanon time 0 min... (1 Reply)
Discussion started by: gio001
1 Replies

7. Homework & Coursework Questions

C++ Attempting to modify this function to read from a (;) semi-colon-separated file

After some thought. I am uncomfortable issuing my professors name where, there may be unintended side effects from any negative responses/feedback. Willing to re post if I can omit school / professor publicly, but can message moderator for validation? I am here for knowledge and understanding,... (1 Reply)
Discussion started by: briandanielz
1 Replies

8. UNIX Desktop Questions & Answers

AIX how to read the file in function again and again

dear friends I have a wrote a shell script which works like this. 1.) a command is executed and the log is moved in the file. 2.) this file is copied in to the other file. 3.) used a grep command to find a particular word. 4.) if a particular word is there then the script will go to next... (4 Replies)
Discussion started by: aboy212u
4 Replies

9. Shell Programming and Scripting

[Bash] Read History function & Read Arrowkeys

Hi. How can I create a history function? (By "read" command or so) & How can I configure a read command so that the arrow keys are not displayed so funny? (^[[A) Thanks in advance. (4 Replies)
Discussion started by: sinnlosername
4 Replies

10. Ubuntu

Barcode scanner buffer read manipulation

Hello, I'm facing some problems with a barcode scanner from Cygnal Inc, model Sweda SL-20. Info from lsusb -v: Bus 003 Device 003: ID 10c4:ff11 Cygnal Integrated Products, Inc. Device Descriptor: bLength 18 bDescriptorType 1 bcdUSB 1.10 ... (4 Replies)
Discussion started by: minharojr
4 Replies
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 Also
       accept(2), execve(2), fcntl(2), flock(2), fsync(2), open(2), pipe(2), socket(2), socketpair(2), write(2)

																	  close(2)
All times are GMT -4. The time now is 01:56 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy