Sponsored Content
Top Forums Programming how to use built in sorting function alphasort Post 302574154 by jim mcnamara on Wednesday 16th of November 2011 03:57:58 PM
Old 11-16-2011
Code:
#include <dirent.h>
#include <stdio.h>
#include <stdlib.h>

int main()
{
   struct dirent **namelist;
   int i,n;

   n = scandir(".", &namelist, 0, alphasort);
   if (n < 0)
   {
        perror("scandir");
        exit(1);
   }
  
   for (i = 0; i < n; i++) 
   {
      printf("%s\n", namelist[i]->d_name);
      free(namelist[i]);
   }
   free(namelist);
   
   return 0;
}

Where the directory name "." is the current directory.
 

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

awk built in variables

Dear experts I am learning awk command through some books on Solaris 8. I have tested the folloing command awk 'BEGIN { print match ("And" , /d/)}' then the result is as following awk: syntax error near line 1 awk: illegal statement near line 1 Could you please help on this and just... (4 Replies)
Discussion started by: Reza Nazarian
4 Replies

2. Shell Programming and Scripting

BUILT-IN command scripts

I am new to Unix scripting. I would like to know if someone can point me to a site which lists any built-in commands in there scripted form. I thought to start with the basics and learn from example. Thanks JSP (2 Replies)
Discussion started by: JSP
2 Replies

3. Shell Programming and Scripting

ksh built-in function

Does anyone know why the following expression return an error ] while the following one not ?? Thanks (1 Reply)
Discussion started by: solea
1 Replies

4. Gentoo

Which GCC Built My Kernel?

I'm playing around with the kqemu accelerator for the QEMU virtualization software. I can't remember which version of gcc I used to build my kernel. I have 3.4.6 and 4.1.1 on this (Gentoo) system. I seem to remember there is some command I can run against binaries that will tell me what gcc (and... (5 Replies)
Discussion started by: deckard
5 Replies

5. Shell Programming and Scripting

built-in hex editor?

I'm using Mac OS 10.2.2 and I need to find a command line hex editor. I figure there's already one built-in, but I just don't know enough about Unix, yet. Basically, what I want to do is tell the hexeditor to open a file, replace a specific offset with a new value, then put the resulting file... (7 Replies)
Discussion started by: Loriel
7 Replies

6. Shell Programming and Scripting

bash built-in

Is there any command or VARIABLE in unix to display only bash builtin commands?. Some days back I worked on that, but now I do not remember. Can anyone please reply for this?... (4 Replies)
Discussion started by: gwgreen1
4 Replies

7. Shell Programming and Scripting

Manually built the code below.

Hi All, I am faced with a problem. I came to know that large scale problems in MATLAB are very slow and with loops they are even slower. I have the MATLAB script below that does some large scale computation for my school project work. I've been running this code for long now but all it did... (1 Reply)
Discussion started by: shoaibjameel123
1 Replies

8. Shell Programming and Scripting

Question about sorting -- how to pass an array to a function

Hi, guys I just wanted to sort the elements of an array ascendingly. I know the following code does work well: array=(13 435 8 23 100) for i in {0..4} do j=$((i+1)) while ] do if } -le ${array} ]] then : else min=${array} ${array}=${array} ${array}=$min fi... (5 Replies)
Discussion started by: franksunnn
5 Replies

9. Shell Programming and Scripting

Sorting a text file with respect to Function/Keyword

Hello Experts, I am truly a beginner in shell and perl . Need an urgent help with sorting a file. please help. wouldn't mind whether in perl or shell script. Here are the details. ------------------------------------------------------ Input Text file EX:... (9 Replies)
Discussion started by: pradyumnajpn10
9 Replies

10. Shell Programming and Scripting

Converting shell to Perl I run into shell built in function trap and need alternative in Perl

I am working on converting shell to Perl script. In shell we have built in function trap Do you know alternative in Perl or actually we don't need it? Thanks for contribution (3 Replies)
Discussion started by: digioleg54
3 Replies
SCANDIR(3)						     Linux Programmer's Manual							SCANDIR(3)

NAME
scandir, alphasort, versionsort - scan a directory for matching entries SYNOPSIS
#include <dirent.h> int scandir(const char *dir, struct dirent ***namelist, int(*select)(const struct dirent *), int(*compar)(const struct dirent **, const struct dirent **)); int alphasort(const void *a, const void *b); int versionsort(const void *a, const void *b); DESCRIPTION
The scandir() function scans the directory dir, calling select() on each directory entry. Entries for which select() returns non-zero are stored in strings allocated via malloc(), sorted using qsort() with the comparison function compar(), and collected in array namelist which is allocated via malloc(). If select is NULL, all entries are selected. The alphasort() and versionsort() functions can be used as the comparison function compar(). The former sorts directory entries using str- coll(3), the latter using strverscmp(3) on the strings (*a)->d_name and (*b)->d_name. RETURN VALUE
The scandir() function returns the number of directory entries selected or -1 if an error occurs. The alphasort() and versionsort() functions return an integer less than, equal to, or greater than zero if the first argument is considered to be respectively less than, equal to, or greater than the second. ERRORS
ENOMEM Insufficient memory to complete the operation. CONFORMING TO
None of these functions is in POSIX. The functions scandir() and alphasort() are from BSD 4.3, and have been available under Linux since libc4. Libc4 and libc5 use the more precise prototype int alphasort(const struct dirent **a, const struct dirent **b); but glibc 2.0 returns to the imprecise BSD prototype. The function versionsort() is a GNU extension, available since glibc 2.1. Since glibc 2.1, alphasort() calls strcoll(3); earlier it used strcmp(3). EXAMPLE
/* print files in current directory in reverse order */ #include <dirent.h> main(){ struct dirent **namelist; int n; n = scandir(".", &namelist, 0, alphasort); if (n < 0) perror("scandir"); else { while(n--) { printf("%s ", namelist[n]->d_name); free(namelist[n]); } free(namelist); } } SEE ALSO
closedir(3), fnmatch(3), opendir(3), readdir(3), rewinddir(3), seekdir(3), strcmp(3), strcoll(3), strverscmp(3), telldir(3) GNU
2001-12-26 SCANDIR(3)
All times are GMT -4. The time now is 04:22 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy