.:: Bots United ::.

.:: Bots United ::. (http://forums.bots-united.com/index.php)
-   General Programming (http://forums.bots-united.com/forumdisplay.php?f=25)
-   -   Running an application (http://forums.bots-united.com/showthread.php?t=3120)

Rifleman 07-12-2004 06:30

Re: Running an application
 
Final question , what function should I use to create a folder ?

sPlOrYgOn 07-12-2004 06:36

Re: Running an application
 
Code:

mkdir()
:)

Pierre-Marie Baty 07-12-2004 08:49

Re: Running an application
 
mkdir() on windows does not correspond to mkdir() on Linux.
Use something like that:
Code:

#ifdef WIN32
#define POSIX_mkdir(a,b) _mkdir(a)
#else
#define POSIX_mkdir(a,b) mkdir(a,b)
#endif

and call POSIX_mkdir instead.

Rifleman 07-12-2004 09:45

Re: Running an application
 
wow ! Pierre , I will marry you if you're a female :D

Pierre-Marie Baty 07-12-2004 11:27

Re: Running an application
 
no, thank you. I'm not, and I'm not gay either >:(

Rifleman 07-12-2004 14:57

Re: Running an application
 
Quote:

Originally Posted by Rifleman
wow ! Pierre , I will marry you if you're a female :D

I suppose you see to word "if" :D

Whistler 08-12-2004 07:08

Re: Running an application
 
well I have grepped my /usr/include directory in my Debian GNU/linux 3.0 and found no .h files has "mkdir()"

and this also doesn't work:
PHP Code:

#include <unistd.h>
mkdir("this_is_a_dir"777); 


Rifleman 08-12-2004 10:46

Re: Running an application
 
#include <direct.h>

in my vc++ 6.0

Whistler 08-12-2004 13:33

Re: Running an application
 
well I suppose you don't know what GNU/Linux operating system is...
It's "not unix", but it's also absolutely not Windows. :D
the GNU/Linux operating system, which is commonly mis-named as "Linux", is a free UNIX clone operating system. It's mostly using GNU software with Linux as the kernel. As it's free everyone can make their own version of system, currently the most popular version is Red Hat Linux (which is only available for purchasing). If you want to download a version, you can download Debian GNU/Linux 3.0 r3 at:
http://www.debian.org (the size is as big as 7 cds as it contains tons of software)
There's also a version at free software foundation's ftp server, which is much smaller (only 1 cd):
ftp://ftp.gnu.org/gnu+linux-distros/...86-pentium.iso
to install it, you'll need a CD-RW drive to burn the ISO images to CDs. then boot from the CD and follow the instructions.

(another thing is MS Visual C++ doesn't work on GNU/Linux :D)

Pierre-Marie Baty 08-12-2004 14:29

Re: Running an application
 
Ahhhhh, Linux.
Crappy Linux.

Code:

/* mkrmdir.c -- BSD compatible directory functions for System V
  Copyright (C) 1988, 1990 Free Software Foundation, Inc.
  This program is free software; you can redistribute it and/or modify
  it under the terms of the GNU General Public License as published by
  the Free Software Foundation; either version 2, or (at your option)
  any later version.
  This program is distributed in the hope that it will be useful,
  but WITHOUT ANY WARRANTY; without even the implied warranty of
  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  GNU General Public License for more details.  */
#ifdef HAVE_CONFIG_H
#include "config.h"
#endif
#include <sys/types.h>
#include <sys/stat.h>
#include <errno.h>
#ifndef STDC_HEADERS
extern int errno;
#endif
/* mkdir and rmdir adapted from GNU tar. */
/* Make directory DPATH, with permission mode DMODE.
  Written by Robert Rother, Mariah Corporation, August 1985
  (sdcsvax!rmr or rmr@uscd).  If you want it, it's yours.
  Severely hacked over by John Gilmore to make a 4.2BSD compatible
  subroutine.  11Mar86; hoptoad!gnu
  Modified by rmtodd@uokmax 6-28-87 -- when making an already existing dir,
  subroutine didn't return EEXIST.  It does now. */
int
mkdir (dpath, dmode)
        char *dpath;
        int dmode;
{
  int cpid, status;
  struct stat statbuf;
  if (stat (dpath, &statbuf) == 0)
        {
          errno = EEXIST;                  /* stat worked, so it already exists. */
          return -1;
        }
  /* If stat fails for a reason other than non-existence, return error. */
  if (! existence_error (errno))
        return -1;
  cpid = fork ();
  switch (cpid)
        {
        case -1:                                        /* Cannot fork. */
          return -1;                                /* errno is set already. */
        case 0:                                        /* Child process. */
          /* Cheap hack to set mode of new directory.  Since this child
                process is going away anyway, we zap its umask.
                This won't suffice to set SUID, SGID, etc. on this
                directory, so the parent process calls chmod afterward. */
          status = umask (0);          /* Get current umask. */
          umask (status | (0777 & ~dmode)); /* Set for mkdir. */
          execl ("/bin/mkdir", "mkdir", dpath, (char *) 0);
          _exit (1);
        default:                                        /* Parent process. */
          while (wait (&status) != cpid) /* Wait for kid to finish. */
                /* Do nothing. */ ;
          if (status & 0xFFFF)
                {
                  errno = EIO;                                /* /bin/mkdir failed. */
                  return -1;
                }
          return chmod (dpath, dmode);
        }
}
/* Remove directory DPATH.
  Return 0 if successful, -1 if not. */
int
rmdir (dpath)
        char *dpath;
{
  int cpid, status;
  struct stat statbuf;
  if (stat (dpath, &statbuf) != 0)
        return -1;                                  /* stat set errno. */
  if ((statbuf.st_mode & S_IFMT) != S_IFDIR)
        {
          errno = ENOTDIR;
          return -1;
        }
  cpid = fork ();
  switch (cpid)
        {
        case -1:                                        /* Cannot fork. */
          return -1;                                /* errno is set already. */
        case 0:                                        /* Child process. */
          execl ("/bin/rmdir", "rmdir", dpath, (char *) 0);
          _exit (1);
        default:                                        /* Parent process. */
          while (wait (&status) != cpid) /* Wait for kid to finish. */
                /* Do nothing. */ ;
          if (status & 0xFFFF)
                {
                  errno = EIO;                                /* /bin/rmdir failed. */
                  return -1;
                }
          return 0;
        }
}



All times are GMT +2. The time now is 11:00.

Powered by vBulletin® Version 3.8.2
Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.