C语言编程getcwd变量操作
基本上我需要一个if语句,它的响应依赖于当前的工作目录 我对这个主题做了一些研究,我相信C语言编程getcwd变量操作,c,io,directory,getcwd,C,Io,Directory,Getcwd,基本上我需要一个if语句,它的响应依赖于当前的工作目录 我对这个主题做了一些研究,我相信getcwd()函数就是我想要的,但是我不知道如何在if语句中与它进行接口 我是C新手,我正在制作的程序需要位于桌面上(顺便说一句,它是UNIX系统)才能正常运行,if语句需要确定它是否位于所述桌面上。您需要先将CWD存储在字符串中: char *cwd; cwd = getcwd(NULL, 0); if(cwd == NULL) { // error return -1; } if(st
getcwd()
函数就是我想要的,但是我不知道如何在if语句中与它进行接口
我是C新手,我正在制作的程序需要位于桌面上(顺便说一句,它是UNIX系统)才能正常运行,if语句需要确定它是否位于所述桌面上。您需要先将CWD存储在字符串中:
char *cwd;
cwd = getcwd(NULL, 0);
if(cwd == NULL) {
// error
return -1;
}
if(strcmp("/whatever", cwd) == 0) {
// same folder
}
free(cwd);
下面的代码怎么样?我在ubuntu上工作
#include <stdlib.h>
#include <unistd.h>
#include <limits.h>
int main( void ){
char* cwd;
char buff[PATH_MAX + 1];
cwd = getcwd( buff, PATH_MAX + 1 );
if( cwd != NULL ) {
printf( "My working directory is %s.\n", cwd );
if(strcmp("/home/razib/Desktop", cwd) == 0) {
printf("I'm in Desktop now\n");
}
}
return EXIT_SUCCESS;
}
#包括
#包括
#包括
内部主(空){
char*cwd;
字符buff[路径_MAX+1];
cwd=getcwd(buff,路径_MAX+1);
如果(cwd!=NULL){
printf(“我的工作目录是%s.\n”,cwd);
如果(strcmp(“/home/razib/Desktop”,cwd)=0){
printf(“我现在在桌面上\n”);
}
}
返回退出成功;
}
这里您必须提供getcwd()
方法abuff[]
。buff[]
可以用sizePATH\u MAX+1
声明<代码>路径_MAX可在限制处找到。h
希望对您有所帮助。非常感谢。该代码将导致未定义的行为。为您分配字符串的实现需要您为第一个参数传入
NULL
。还要注意的是,并不是所有的实现都会分配内存,它不是标准化的。多亏了Razib,这看起来工作得很顺利