MAC COCOA call command 调用终端控制台程序
MAC COCOA call command 调用终端控制台程序
STEP 1
先写一个C++ DOS程序
STEP2
使用NSTask来运行,然后用NSPipe和
NSData来接受运行的结果字符串。
先写一个函数:
/*******************************
Function : NSTask Class + Terminal(=Windows Command) of MAC OS X
Description :
$ ./test_was_call_command_app -sum 2 8 5
*******************************/
NSString* test_sum(int a,int b,int c)
{
NSString *path = @"/Users/test_was_call_command_app/debug/test_was_call_command_app";
NSTask *task = [[NSTask alloc] init];
task.launchPath = path;
NSMutableArray *arguments = [[NSMutableArray alloc] init];
[arguments addObject:@"-sum"];
NSString *var;
var =[ NSString stringWithFormat:@"%i",a ];
[arguments addObject:var];
var =[ NSString stringWithFormat:@"%i",b];
[arguments addObject:var];
var =[ NSString stringWithFormat:@"%i",c ];
[arguments addObject:var];
task.arguments = arguments;
//启动前,添加输出设置+++
NSPipe *pipe;
pipe = [NSPipe pipe];
[task setStandardOutput: pipe];
NSFileHandle *file;
file = [pipe fileHandleForReading];
// --- [task launch];
[task waitUntilExit];
//运行结束后,得到运行的结果字符串++++++
NSData *data;
data = [file readDataToEndOfFile]; NSString *result_str;
result_str = [[NSString alloc] initWithData: data
encoding: NSUTF8StringEncoding];
//---------------------------------
return result_str;
}
然后在MAIN函数里面调用
int main(int argc,
const char * argv[])
{
@autoreleasepool
{
NSString *rs=test_sum(7,2,20);
int rs_int= [rs intValue];
NSString *show =[NSString
stringWithFormat:@"sum : %i",rs_int ];
CFShow(show);
}
}
STEP3
測试。成功!
补充:
// [下面两行能够在MAC APP中点击button打开一个网页] +++
NSURL *web_url = [NSURL
URLWithString:@"http://www.hao123.com/"];
[[NSWorkspace
sharedWorkspace] openURL:web_url];//TEST OK!
// [下面两行能够在MAC APP中点击button打开一个网页] ---
// Launch Apple Mail [test OK!]
[[NSWorkspace
sharedWorkspace]
openURL:[NSURL
URLWithString:@"mailto://info@iphonedevelopertips.com"]];
或者:
- (IBAction)OnClick_BT_OpenURLBySearch:(id)sender
{
//打开网页的另外一种方法,传递一个var [begin] +++
NSString* searchQuery =
@"apple";
// Be careful to always URL encode things like spaces and other symbols that aren't URL friendly
searchQuery =  [searchQuery stringByAddingPercentEscapesUsingEncoding:
NSUTF8StringEncoding];
// Now create the URL string ...
NSString* urlString = [NSString
stringWithFormat:@"http://www.baidu.com/s?wd=%@", searchQuery];
// An the final magic ... openURL!
[[NSWorkspace
sharedWorkspace] openURL:[NSURL
URLWithString:urlString]];
//打开网页的另外一种方法。传递一个var [begin] ---
}
MAC COCOA call command 调用终端控制台程序的更多相关文章
- Mac/Windows开发跨平台.NET Core 控制台程序
		自从微软开始在Github上开源搞.NET Core后,.NET的跨平台逐渐就成真了.多年使用各种语言,说实话还是csharp用起来最舒服.不过现在的工作环境里使用它的机会比较少,大部分时候只是用来写 ... 
- Mac OS X上用CoreCLR运行一个真正的.NET控制台程序
		这个真正的控制台程序来自corefxlab,名叫CoreClrHelloWorld,是一个跨平台的.NET控制台演示程序,可以显示微软.Linux.苹果的logo. CoreClrHelloWorld ... 
- C#:控制台程序调用中间库创建窗体
		1.类库项目引用System.Windows.Forms并添加引用后,才可创建窗体. 2.控制台应用程序调用中间库(DLL)中的方法创建窗体:中间类库使用反射下的Assembly加载包含窗体的类库及创 ... 
- 『片段』ShellHelper 控制台程序 的 程序调用(支持输入命令得到返回字符串输出)
		背景: > 之前做 OGG 时,被 OGG的配置 恶心到了.(OGG是啥,这里就不解释了) > 总之就是一个 控制台程序,总是得手动执行一堆命令,每次都得输入 —— 实在是打字打累了. & ... 
- mac 发布.net Core2.0 控制台程序
		安装.net core2.0 环境,略 新建文件夹 TestA, 存放项目 TestA 在 TestA 文件夹下,创建控制台程序: dotnet new console(会自动生成 TestA.csp ... 
- Ubuntu16.04使用sublime text3编写C语言后,实现编译并自动调用bash终端运行程序
		实现编译并自动调用bash运行程序只需要新建自己的.build文件就OK 依次打开: tools->building system->new building system 后,把下面的内 ... 
- svc6 控制台程序利用SoapToolkit3.0调用WebService
		1. 首先要安装SoapToolkit3.0安装包并安装(我的安装目录为:C:\Program Files\Common Files) 2. 新建vc控制台程序(空项目),项目名称:WinConsol ... 
- 在Mac下运行ASP.NET Core应用程序
		在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的第一个ASP.NET应用. 开发环境搭建 首先 ... 
- Mac下运行ASP.NET Core应用程序
		Mac下运行ASP.NET Core应用程序 在Mac下运行ASP.NET Core应用程序 通过参照.NET Core相关官方文档,在我的Mac电脑上用Visual Studio Code创建了我的 ... 
随机推荐
- js 中的switch
			前言 switch 这种表达式在很多语言中都有,比如java, C等待, 使用switch比使用if else 来得方便,来得清晰. 使用语法很简单: switch(n) { case 1: 执行代码 ... 
- gem update --system 302 错误 解决方案(转)
			具体过程如下: 1.InstantRails-2.0安装后,在配置环境变量path中配置ruby/bin目录(如果系统中有多个RUBY,执行命令行的时候系统认的就是path中的) 2.进入DOS命令行 ... 
- Node.js log2: ERR when execute  command >npm install
			1.Node.js创建项目 项目microblog创建成功,提示:cd microblog& npm install 项目创建完成时的目录如下图所示: 2.Node.js错误 如题所言: E ... 
- linux 用户空间获得纳秒级时间ns
			一.引言 我们在测试程序的性能的时候往往需要获得ns级的精确时间去衡量一个程序的性能,下面介绍下linux中用户空间获得ns级时间的方法 二.用户空间获得ns级时间 使用clock_gettime函数 ... 
- 将常见对象转换成json字符串
			public class JsonUtil { public static String objectTojson(Object obj) { StringBuilder json = new Str ... 
- 关于select
			select 1与select * 的区别:“selelct 常量 from 表名” 对应所有行,返回的永远只有一个值,即常量 ,所以一般只用来判断是否有表记录:而“select * from 表名” ... 
- cocos2d-x 3.0游戏实例学习笔记《卡牌塔防》第七步---英雄要升级&属性--解析csv配置文件
			/* 说明: **1.本次游戏实例是<cocos2d-x游戏开发之旅>上的最后一个游戏,这里用3.0重写并做下笔记 **2.我也问过木头本人啦.他说:随便写,第一别全然照搬代码:第二能够说 ... 
- C#运用实例.读取csv里面的词条,对每一个词条抓取百度百科相关资料,然后存取到数据库
			第一步:首先需要将csv先装换成datatable,这样我们就容易进行对datatable进行遍历: /// 将CSV文件的数据读取到DataTable中 /// CSV文件路径 /// 返回读取了C ... 
- PHP自学4——通过函数将数组数据输出到html的Table标签中(使用函数的例子)
			这一节其实说实话并没有什么干货,不过为了防止PO主的懒癌的复发,还是坚持放一点东西,即使是内容和长度都令人发指.这一节通过一个函数来实现将数组中的内容输出html的Table标签当中显示. 函数文件— ... 
- Daily Sentence
			2016-12-05 08:59:15 Knowing yourself is the beginning of all wisdom. 智者始于自知. 2016-05-01 19:38:25 The ... 
