Sponsored Content
Full Discussion: File creation problem
Top Forums Programming File creation problem Post 302741907 by Don Cragun on Monday 10th of December 2012 07:32:29 AM
Old 12-10-2012
Quote:
Originally Posted by powyama
New program after alteration:
questions::
1) Is this way of writing integer to the file is correct?
if correct the why i am getting an empty file?
if wrong means how should i write an integer? because i am able to write and string easilt in to the file. the problem comes when the value is an integer.


Code:
#include <fcntl.h>
#include <sys/stat.h>
#include <unistd.h>
#define DEFAULT_ID 0

int main()
{
    int data, d;
    size_t sz;
    data=0;
    if ((d = open("bv", O_RDWR | O_CREAT | O_TRUNC, 0644)) < 0) {
        printf("\n\nconfig_write::file error\n\n");
        return;
    }
    printf("sizeof(sz)%d-sizeof(data)%d\n",sizeof(sz), sizeof(data));
    if (write(d, &data, sz)) {
        printf("\n\nconfig_write::  written successfully\n\n");
        close(d);
        return;
    }
    printf("\nexiting...");
    close(d);
}
sample output:
{319}: vi te.c
{320}: cc te.c
{321}: ./a.out
sizeof(sz)4-sizeof(data)4


config_write::  written successfully

{322}: cat bv
{323}

No! You can't use an uninitialized value to specify the number of bytes to write. You shouldn't use functions without providing their function prototypes. You shouldn't use cat to write binary data to a terminal.

The problem is not that you're writing an integer; the problem is that you're telling it to write a random number of bytes because you never set the value of sz AND if data has been written to the file, you're expecting null bytes written to a terminal to be visible.
  1. Add
    Code:
    #include <stdio.h>

    as a new line at the start of te.c.
  2. Change:
    Code:
    if (write(d, &data, sz)) {

    to:
    Code:
    sz = sizeof(data);
    if (write(d, &data, sz) == (ssize_t)sz) {

  3. Delete the lines:
    Code:
    close(d);
    return;

  4. Change:
    Code:
    printf("\nexiting...");

    to:
    Code:
    printf("exiting...\n");

  5. If it completes successfully, use:
    Code:
    ls -l bv
    od -t cdI bv

    instead of:
    Code:
    cat bv

    to display the contents of the file.
This User Gave Thanks to Don Cragun For This Post:
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

user creation problem

hello, Actually I want to create a user for our brower based custom application for the mail access from our mailserver(linux). I create user dummy and I granted all the privileages to dummy user and made dummy equivelent to root and if I tried to create a another user logging as dummy ... (1 Reply)
Discussion started by: jarkvarma
1 Replies

2. Shell Programming and Scripting

problem with link creation!!!!

I have a home directory namely /pto/ppa/ridbmw/etl/ Now i have various directorys below the home directory. For eg from the home directory if i say cd /roddata it changes to that directory. I think its kind of link (I don't know if it's hard or soft). Now i need to create a new directory and... (4 Replies)
Discussion started by: dsravan
4 Replies

3. Shell Programming and Scripting

Directory Creation problem

Hiiii, here is my script-- BackupLocation="$OPTARG" if ]; then echo "Either option l or L should be given to $Programname" echo "$Usage" echo "$Programname is terminated" ... (1 Reply)
Discussion started by: namishtiwari
1 Replies

4. Solaris

File creation problem

Hi to all, I am facing a strange problem on the Solaris-10 server. I am unable to create/write files on the server. After writing, when I go for the save, then it gives me and 'jag: I/O error'..where 'jag' is a file name. Please suggest me... Regards, Jagdish Machhi (2 Replies)
Discussion started by: jagdish.machhi@
2 Replies

5. HP-UX

Problem With exceutable file creation

Hello , I came up with a new problem during creation of an exceutable file. My application all the c files and links them to create a new executable file. Till last month everything was fine and yester day i tried to change one file and tried to create an exe file but unsuccesfull. I am... (8 Replies)
Discussion started by: jagan_kalluri
8 Replies

6. Shell Programming and Scripting

File Creation Problem

I recently got a problem with a program. It said that Create a file using shell script and insert details in it and take a String from the user and see whether it matches with any of the details of the String. I know how to create a file, insert details, but hw to check whether the String matches... (2 Replies)
Discussion started by: ramj
2 Replies

7. AIX

User creation problem

Hi, I am getting tired in creating several users in a day. Can anyone have a script to create several users in the same server, as well as, to create one user in several servers. where i have to put script and how to run the script. Waiting for your reply. Thanks in advance (5 Replies)
Discussion started by: udtyuvaraj
5 Replies

8. Programming

problem with xsd file creation

Hi every one, I am new to xml data files,I have two xml files with same data but only small difference as shown below <List> <number>1101</number> <Area>inner walls in a room.</Area> <Detection>less pressure.</Detection> <reason> <normal> <Component Num="15"... (1 Reply)
Discussion started by: veerubiji
1 Replies

9. Shell Programming and Scripting

Text file creation problem

Using KSH, I have one text file which just contains a list of distinct references on each line, e.g.; 123456789 987654321 15457544X 164450200 etc. The file will always be called "InputRefs.txt". The number of distinct refs will be different each time. For each line (distinct ref) I... (1 Reply)
Discussion started by: b.hamilton
1 Replies

10. UNIX for Advanced & Expert Users

LVM mirror creation problem

I apologize is this isn't an appropriate post for the 'advanced' UNIX, so please let me know if I should post this under UNIX for dummies, but here's my problem in a nutshell: I having problems creating a mirrored logical volume. I have created two new physical volumes ... (2 Replies)
Discussion started by: simonrodan
2 Replies
All times are GMT -4. The time now is 10:02 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy