Sponsored Content
Top Forums Shell Programming and Scripting Inappropriate ioctl for device Post 81082 by RishiPahuja on Tuesday 16th of August 2005 09:51:33 AM
Old 08-16-2005
Data

yes, as I told I am not in position to add echo statments but there do exists a echo statment and data echoed is perfectly visible in log.

After tht echo call only the C executable is invoker with appropiate arguments.

Why i am worried with this pieve of code specifically is we have two functioncalls sortTempInputFile and sortInputFile.

First call "sortInputFile" is always successfull while second call where only filename is different fails "sortTempInputFile"

before invoking the sort command we even check the error code.

complete code of function is:

Code:
void sortTempInputFile(char *inputFileName)
{
    char sortcmd         [1024] = "\0";
    char tmpSortFileName [1024] = "\0";
 
    iFileName[0] = '\0';
 
    if(errno)
    {
       perror(" ");
    }
 
    sprintf(tmpSortFileName, "/tmp/temp%s", "tempIRBPAVAInputFile");
 
    /* Sort by carrier ID, company #, bill to RAO, statement date, BTN, ??? */
    sprintf(sortcmd,
             "sort -k 1.132,1.135 -k 1.118,1.119 -k 1.118,1.119 "\
                  "-k 1.112,1.114 -k 1.104,1.111 -k 1.142,1.151 "\
                  "-k 1.155,1.162 %s > %s", inputFileName, tmpSortFileName);
    system(sortcmd);
 
    if(errno)
    {
       fprintf(stderr,
              "Error sorting the input file %s...\nExiting...\n",
                inputFileName);
       exit(ERR);
    }
 
    sprintf(sortcmd, "chmod 777 %s", tmpSortFileName);
    system(sortcmd);
 
    if(errno)
    {
       fprintf(stderr,"%s%s\n",
               "Error changing permissions for the temp input file ...",
               "Exiting...");
 
       exit(ERR);
    }
 
    sprintf(sortcmd, "mv -f %s %s", tmpSortFileName, inputFileName);
    system(sortcmd);
 
    if(errno)
    {
       fprintf(stderr,"Error moving the input file ...\nExiting...\n");
       exit(ERR);
    }
 
}

I greped for tty in all the scripts but could not find one...is there anyway we will be connecting to tty?
 

10 More Discussions You Might Find Interesting

1. Filesystems, Disks and Memory

Inappropriate ioctl for device

Hi, We are running a perl script to upload some data using SQL* Loader. We pipe the data in a http request to SQL*Loader which loads the data to the database. We encounter the error "Inappropirate ioctl for device" when we try to upload huge data. Any solution would be greatly appreciated.... (4 Replies)
Discussion started by: tojaiganesh
4 Replies

2. UNIX for Dummies Questions & Answers

Inappropriate ioctl for device

When I try to format a slice in Solaris 10 I get the follow error :confused: : -bash-3.00# mkfs /dev/dsk/c1d0s5 18877824 Can not determine partition size: Inappropriate ioctl for device Some format command output:.... AVAILABLE DISK SELECTIONS: 0. c1d0 <DEFAULT cyl 38735 alt 2... (0 Replies)
Discussion started by: spoonman
0 Replies

3. UNIX for Dummies Questions & Answers

Inappropriate ioctl for device

Hello, I have a cron entry: 59 23 * * * . $HOME/.profile;mydate=`date '+%Y%m%d'`;mv filename filename_$mydate Which works fine interactively, but gives me the following error when it runs in cron: Your "cron" job on servername . $HOME/.profile;mydate=`date '+ produced the... (4 Replies)
Discussion started by: steelrose
4 Replies

4. Solaris

Inappropriate ioctl for device, format error

When I try to format a slice in Solaris 10 I get the follow error : -bash-3.00# mkfs /dev/dsk/c1d0s5 18877824 Can not determine partition size: Inappropriate ioctl for device Some format command output:.... AVAILABLE DISK SELECTIONS: 0. c1d0 <DEFAULT cyl 38735 alt 2 hd 64 sec 63>... (2 Replies)
Discussion started by: spoonman
2 Replies

5. UNIX for Dummies Questions & Answers

mt command shows /dev/tape: inappropriate ioctl for device

Hello guys, on my Red Hat machine the /bin/mt status command gives the output dev/tape: inappropriate ioctl for device. This messages comes up after the Server has been rebooted. Anybody an idea? Thx masterofdesaster (8 Replies)
Discussion started by: masterofdesaste
8 Replies

6. Shell Programming and Scripting

hdparm + Inappropriate ioctl for device

Hi All, Am finding performance of my SD card using hdparm. Code: hdparm -tT /dev/BlockDev0 /dev/BlockDev0: Timing cached reads: 1118 MB in 2.00 seconds = 558.61 MB/sec HDIO_DRIVE_CMD(null) (wait for flush complete) failed: Inappropriate ioctl for device Timing buffered disk... (1 Reply)
Discussion started by: amio
1 Replies

7. Shell Programming and Scripting

tcgetattr: Inappropriate ioctl for device after ssh command

Hello everyone I am finishing a script allowing me to purge logs on multiple servers, i have one last pb with the ssh command.........it is throwing me the following error : tcgetattr: Inappropriate ioctl for device (full screen in attached file 1, full script in attached file 2) It... (15 Replies)
Discussion started by: jimmy75_13
15 Replies

8. UNIX for Advanced & Expert Users

nohup: can't detach from console: Inappropriate ioctl for device

Hi! I am getting a nohup issue on mac osx while trying to start a process through nohup in the startup script. nohup: can't detach from console: Inappropriate ioctl for device Please help! Thanks, Allan. (0 Replies)
Discussion started by: jacki
0 Replies

9. UNIX for Dummies Questions & Answers

Tcgetattr: Inappropriate ioctl for device

Hi, ssh -q -t -l $usr $host bin/test.sh I am using above command to run script remotely. script is working without any issues. but I am getting "tcgetattr: Inappropriate ioctl for device" message on console. plz help how can I avoid this message. Thanks Moved thread from Emergency... (1 Reply)
Discussion started by: Kri
1 Replies

10. Shell Programming and Scripting

Inappropriate ioctl for device

Sample program tty, this will be get called from my script test_script. #include <stdio.h> #include <unistd.h> #define TTY_NAME_MAX 32 #define STDIN_FILENO 0 /* Standard input. */ int main(void) { int ret = 0; char local_device_file; printf("\npid =... (7 Replies)
Discussion started by: Gajendra_PH
7 Replies
explain_sprintf(3)					     Library Functions Manual						explain_sprintf(3)

NAME
explain_sprintf - explain sprintf(3) errors SYNOPSIS
#include <libexplain/sprintf.h> const char *explain_sprintf(char *data, const char *format, ...); const char *explain_errno_sprintf(int errnum, char *data, const char *format, ...); void explain_message_sprintf(char *message, int message_size, char *data, const char *format, ...); void explain_message_errno_sprintf(char *message, int message_size, int errnum, char *data, const char *format, ...); DESCRIPTION
These functions may be used to obtain explanations for errors returned by the sprintf(3) system call. explain_sprintf const char *explain_sprintf(char *data, const char *format, ...); The explain_sprintf function is used to obtain an explanation of an error returned by the sprintf(3) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. data The original data, exactly as passed to the sprintf(3) system call. format The original format, exactly as passed to the sprintf(3) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. Example: This function is intended to be used in a fashion similar to the following example: errno = EINVAL; int result = sprintf(data, format, ...); if (result < 0) { fprintf(stderr, "%s ", explain_sprintf(data, format, ...)); exit(EXIT_FAILURE); } The above code example is available pre-packaged as the explain_sprintf_or_die(3) function. explain_errno_sprintf const char *explain_errno_sprintf(int errnum, char *data, const char *format, ...); The explain_errno_sprintf function is used to obtain an explanation of an error returned by the sprintf(3) system call. The least the mes- sage will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. data The original data, exactly as passed to the sprintf(3) system call. format The original format, exactly as passed to the sprintf(3) system call. Returns: The message explaining the error. This message buffer is shared by all libexplain functions which do not supply a buffer in their argument list. This will be overwritten by the next call to any libexplain function which shares this buffer, including other threads. Note: This function is not thread safe, because it shares a return buffer across all threads, and many other functions in this library. Example: This function is intended to be used in a fashion similar to the following example: errno = EINVAL; int result = sprintf(data, format, ...); if (result < 0) { int err = errno; fprintf(stderr, "%s ", explain_errno_sprintf(err, data, format, ...)); exit(EXIT_FAILURE); } The above code example is available pre-packaged as the explain_sprintf_or_die(3) function. explain_message_sprintf void explain_message_sprintf(char *message, int message_size, char *data, const char *format, ...); The explain_message_sprintf function is used to obtain an explanation of an error returned by the sprintf(3) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. The errno global variable will be used to obtain the error value to be decoded. message The location in which to store the returned message. If a suitable message return buffer is supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. data The original data, exactly as passed to the sprintf(3) system call. format The original format, exactly as passed to the sprintf(3) system call. Example: This function is intended to be used in a fashion similar to the following example: errno = EINVAL; int result = sprintf(data, format, ...); if (result < 0) { char message[3000]; explain_message_sprintf(message, sizeof(message), data, format, ...); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } The above code example is available pre-packaged as the explain_sprintf_or_die(3) function. explain_message_errno_sprintf void explain_message_errno_sprintf(char *message, int message_size, int errnum, char *data, const char *format, ...); The explain_message_errno_sprintf function is used to obtain an explanation of an error returned by the sprintf(3) system call. The least the message will contain is the value of strerror(errno), but usually it will do much better, and indicate the underlying cause in more detail. message The location in which to store the returned message. If a suitable message return buffer is supplied, this function is thread safe. message_size The size in bytes of the location in which to store the returned message. errnum The error value to be decoded, usually obtained from the errno global variable just before this function is called. This is neces- sary if you need to call any code between the system call to be explained and this function, because many libc functions will alter the value of errno. data The original data, exactly as passed to the sprintf(3) system call. format The original format, exactly as passed to the sprintf(3) system call. Example: This function is intended to be used in a fashion similar to the following example: errno = EINVAL; int result = sprintf(data, format, ...); if (result < 0) { int err = errno; char message[3000]; explain_message_errno_sprintf(message, sizeof(message), err, data, format, ...); fprintf(stderr, "%s ", message); exit(EXIT_FAILURE); } The above code example is available pre-packaged as the explain_sprintf_or_die(3) function. SEE ALSO
sprintf(3) formatted output conversion explain_sprintf_or_die(3) formatted output conversion and report errors COPYRIGHT
libexplain version 0.52 Copyright (C) 2010 Peter Miller explain_sprintf(3)
All times are GMT -4. The time now is 12:40 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy