execlp to sort


 
Thread Tools Search this Thread
Top Forums Programming execlp to sort
# 1  
Old 11-28-2007
execlp to sort

Hi, I have a very small program where I call execlp() to execute sort.

Everything works fine. But sort has a -T option which can be used to specify a temporary directory. Now when I use -T with execlp() it does not work.

Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <errno.h>

int main(int argc, char *argv[])
{
        int ret;

        ret = execlp("sort","sort","hugefile.txt","-T /u/mmr/somedir",NULL);
        if (ret == -1) {
                fprintf(stderr, "Could not sort file (%s)", strerror(errno));
                exit(1);
        }
        return(1);
}

sort when called using execlp() is unable to find the specified directory "somedir"

This is the error that I get.

Quote:
sort: cannot create temporary file: /u/mmr/somedir/sortPbxXPn: No such file or directory
However when I run the same command from the shell. Things work fine:

Quote:
%> sort hugefile.txt -T /u/mmr/somedir
does anybody have a clue on what might be going on? any input will be appreciated!
# 2  
Old 11-28-2007
This works:
Code:
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/wait.h>
#include <fcntl.h>
#include <errno.h>

int main(int argc, char *argv[])
{
        int ret;

        ret = execlp("sort","sort","-T", "/tmp","zma.txt",NULL);
        if (ret == -1) {
                fprintf(stderr, "Could not sort file (%s)", strerror(errno));
                exit(1);
        }
        return(1);
}

I used zma.txt as the file to sort, because that's an all-purpose junk file I have.
# 3  
Old 11-28-2007
hey thanks a lot jim, that works !!
# 4  
Old 11-29-2007
Code:
ret = execlp("sort","sort","-T", "/tmp","zma.txt",NULL);

Jim,
I feel using absolute paths here would be much more better.
# 5  
Old 11-29-2007
Quote:
Originally Posted by matrixmadhan
I feel using absolute paths here would be much more better.
Isn't that why he's using 'execlp'?
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Difference of Sort -n -k2 -k3 & Sort -n -k2,3

Hi, Could anyone kindly show me a link or explain the difference between sort -n -k2 -k3 & sort -n -k2,3 Also, if I like to remove the row with repetition at both $2 and $3, Can I safely use sort -u -k2 -k3 Example; 100 20 30 100 20 30 So, both $2 and $3 are same and I... (2 Replies)
Discussion started by: Indra2011
2 Replies

2. Shell Programming and Scripting

Sort help: How to sort collected 'file list' by date stamp :

Hi Experts, I have a filelist collected from another server , now want to sort the output using date/time stamp filed. - Filed 6, 7,8 are showing the date/time/stamp. Here is the input: #---------------------------------------------------------------------- -rw------- 1 root ... (3 Replies)
Discussion started by: rveri
3 Replies

3. Shell Programming and Scripting

Help with sort word and general numeric sort at the same time

Input file: 100%ABC2 3.44E-12 USA A2M%H02579 0E0 UK 100%ABC2 5.34E-8 UK 100%ABC2 3.25E-12 USA A2M%H02579 5E-45 UK Output file: 100%ABC2 3.44E-12 USA 100%ABC2 3.25E-12 USA 100%ABC2 5.34E-8 UK A2M%H02579 0E0 UK A2M%H02579 5E-45 UK Code try: sort -k1,1 -g -k2 -r input.txt... (2 Replies)
Discussion started by: perl_beginner
2 Replies

4. Programming

Problem with fork() and execlp process

Hello everyone, this is my first post. I have a task to use a fork to create multiple processes and then use execlp to run another program to add 2 numbers. The problem I am having is we are supposed to use the exit() call in the execlp to return the small integer. This is a bad way to... (3 Replies)
Discussion started by: Johnathan_1017
3 Replies

5. Programming

How use exec, execlp, ....

Hello, I need to do a function in ansi c for linux that work like command cp.I try with this but doesn't work: int copy (char *src, char *dst) { ret = execlp("/bin/cp", "cp", "/home/linux/working", (char*)src,(char*)dst) return 0; } The copy function must do the next "cp origein.txt... (2 Replies)
Discussion started by: NewBe
2 Replies

6. UNIX for Advanced & Expert Users

Script to sort the files and append the extension .sort to the sorted version of the file

Hello all - I am to this forum and fairly new in learning unix and finding some difficulty in preparing a small shell script. I am trying to make script to sort all the files given by user as input (either the exact full name of the file or say the files matching the criteria like all files... (3 Replies)
Discussion started by: pankaj80
3 Replies

7. UNIX for Dummies Questions & Answers

How it work?? the execlp

int main () { int p=1; while (p>0) p=fork(); execlp("prog",prog",Null); return 0; } and thanks :b: (1 Reply)
Discussion started by: foufo07
1 Replies

8. Shell Programming and Scripting

How to Sort Floating Numbers Using the Sort Command?

Hi to all. I'm trying to sort this with the Unix command sort. user1:12345678:3.5:2.5:8:1:2:3 user2:12345679:4.5:3.5:8:1:3:2 user3:12345687:5.5:2.5:6:1:3:2 user4:12345670:5.5:2.5:5:3:2:1 user5:12345671:2.5:5.5:7:2:3:1 I need to get this: user3:12345687:5.5:2.5:6:1:3:2... (7 Replies)
Discussion started by: daniel.gbaena
7 Replies

9. HP-UX

ENOENT error occurs while issueing execlp command

/************************************************************************ * * TEST NAME: setrlimitd_su.c * * PURPOSE: To verify the soft (rlim_cur) and hard (rlim_max) limit * of process RLIMIT_DATA resources correctly inherited by * the exec() system call. * * RESULT: function call should... (1 Reply)
Discussion started by: mansa
1 Replies

10. Programming

execvp and execlp?

Hi mates, Is there any difference between execvp and execlp? any comment will be appreciated. abdul:) (1 Reply)
Discussion started by: abdul
1 Replies
Login or Register to Ask a Question