コード例 #1
0
ファイル: pwd.c プロジェクト: jorisgio/DragonFlyBSD
int
main(int argc, char *argv[])
{
	int physical;
	int ch;
	char *p;
	char buf[PATH_MAX];

	if (strcmp(getprogname(), "realpath") == 0) {
		if (argc != 2)
			usage();
		if ((p = realpath(argv[1], buf)) == NULL)
			err(1, "%s", argv[1]);
		printf("%s\n", p);
		exit(0);
	}

	physical = 1;
	while ((ch = getopt(argc, argv, "LP")) != -1)
		switch (ch) {
		case 'L':
			physical = 0;
			break;
		case 'P':
			physical = 1;
			break;
		case '?':
		default:
			usage();
		}
	argc -= optind;
	argv += optind;

	if (argc != 0)
		usage();

	/*
	 * If we're trying to find the logical current directory and that
	 * fails, behave as if -P was specified.
	 */
	if ((!physical && (p = getcwd_logical()) != NULL) ||
	    (p = getcwd(NULL, 0)) != NULL)
		printf("%s\n", p);
	else
		err(1, ".");

	exit(0);
}
コード例 #2
0
ファイル: pwd.c プロジェクト: AgamAgarwal/minix
int
main(int argc, char *argv[])
{
	int ch, lFlag;
	const char *p;

	setprogname(argv[0]);
	(void)setlocale(LC_ALL, "");

	lFlag = 0;
	while ((ch = getopt(argc, argv, "LP")) != -1) {
		switch (ch) {
		case 'L':
			lFlag = 1;
			break;
		case 'P':
			lFlag = 0;
			break;
		case '?':
		default:
			usage();
		}
	}
	argc -= optind;
	argv += optind;

	if (argc != 0)
		usage();

	if (lFlag)
		p = getcwd_logical();
	else
		p = NULL;
	if (p == NULL)
		p = getcwd(NULL, 0);

	if (p == NULL)
		err(EXIT_FAILURE, NULL);

	(void)printf("%s\n", p);

	exit(EXIT_SUCCESS);
	/* NOTREACHED */
}
コード例 #3
0
ファイル: pwd.c プロジェクト: gawen947/sunix
int main(int argc, char *argv[])
{
  int i;
  int physical;
  int ch;
  char *p;

  physical = 1;

  for(i = 1 ; i < argc ; i++) {
    char *arg = argv[i];

    if(arg[0] == '-') {
      if(arg[1] == 'L' && arg[2] == '\0') {
        physical = 0;
        continue;
      }
      else if(arg[1] == 'P' && arg[2] == '\0') {
        physical = 1;
        continue;
      }
    }

    record_invalid(argv[0], arg);
    usage();
  }

  /*
   * If we're trying to find the logical current directory and that
   * fails, behave as if -P was specified.
   */
  if ((!physical && (p = getcwd_logical()) != NULL) ||
      (p = getcwd(NULL, 0)) != NULL)
    printf("%s\n", p);
  else
    err(1, ".");

  exit(0);
}
コード例 #4
0
ファイル: pwd.c プロジェクト: 2trill2spill/freebsd
int
main(int argc, char *argv[])
{
	int physical;
	int ch;
	char *p;

	physical = 1;
	while ((ch = getopt(argc, argv, "LP")) != -1)
		switch (ch) {
		case 'L':
			physical = 0;
			break;
		case 'P':
			physical = 1;
			break;
		case '?':
		default:
			usage();
		}
	argc -= optind;
	argv += optind;

	if (argc != 0)
		usage();

	/*
	 * If we're trying to find the logical current directory and that
	 * fails, behave as if -P was specified.
	 */
	if ((!physical && (p = getcwd_logical()) != NULL) ||
	    (p = getcwd(NULL, 0)) != NULL)
		printf("%s\n", p);
	else
		err(1, ".");

	exit(0);
}
コード例 #5
0
ファイル: pwd.c プロジェクト: JustinMuniz/OSI-OS-Source
int main( int argc, char *argv[] ) {
	int physical;
	int ch;
	char *p;
	physical = 1;
	while ( ( ch = getopt( argc, argv, "LP" ) ) != -1 )
		switch ( ch ) {
			case 'L':
				physical = 0;
				break;
			case 'P':
				physical = 1;
				break;
			default:
				exit( 1 );
		}
	argc -= optind;
	argv += optind;
	if ( argc != 0 ) exit( 1 );
	if ( ( !physical && ( p = getcwd_logical() ) != NULL ) || ( p = getcwd( NULL, 0 ) ) != NULL ) printf( "%s\n", p );
	else err( 1, "." );
	exit( 0 );
}