我想从我的可可APP运行Bash命令。并接收输出。我使用管理权限执行所有命令。 How to get output from Admin Priveleges bash script, called from Cocoa?什么是Cocoa中的FILE *类型,以及如何正确使用它?
我想我需要FILE *类型来存储输出,但我不知道如何使用它。
什么是FILE *类型?我该如何使用它?
我想从我的可可APP运行Bash命令。并接收输出。我使用管理权限执行所有命令。 How to get output from Admin Priveleges bash script, called from Cocoa?什么是Cocoa中的FILE *类型,以及如何正确使用它?
我想我需要FILE *类型来存储输出,但我不知道如何使用它。
什么是FILE *类型?我该如何使用它?
FILE *
是C类型,它与可可没有任何关系。它是一个打开文件的句柄。这里有一个例子:
#include <stdio.h>
int main() {
FILE *file;
file = fopen("myfile.txt", "w"); // open file
if (!file) { // file couldn't be opened
return 1;
}
fputs("fopen example", file); // write to file
fclose(file);
return 0;
}
在可可,你应该正常使用NSString
的和NSData
的writeToURL:atomically:encoding:error:
和writeToURL:atomically:
方法,分别。
FILE是ANSI C结构用于文件处理。 fopen函数返回一个文件指针。该指针指向一个包含有关文件信息的结构,例如缓冲区的位置,缓冲区中的当前字符位置,文件是正在读取还是已写入,以及是否发生错误或文件结尾。用户不需要知道详细信息,因为从stdio.h获得的定义包含称为FILE的结构声明。所需的文件指针的唯一声明由
FILE *fp;
FILE *fopen(char *name, char *mode);
例证这是说计划生育是一个指向文件的指针,并返回的fopen一个指针到一个文件中。请注意, FILE是一个类型名称,如int,而不是结构标签;它是用typedef定义的。
#include <stdio.h>
int main()
{
FILE * pFile;
char buffer [100];
pFile = fopen ("myfile.txt" , "r");
if (pFile == NULL) perror ("Error opening file");
else
{
while (! feof (pFile))
{
if (fgets (buffer , 100 , pFile) != NULL)
fputs (buffer , stdout);
}
fclose (pFile);
}
return 0;
}
本示例读取名为myfile.txt的文本文件的内容并将其发送到标准输出流。
'FILE *'不是可可。这是POSIX C. –
好的谢谢。以及它应该如何在可可中使用? – User1234
@ User1234与C相同。请参阅我的答案。 – 2011-10-12 12:44:02