由买买提看人间百态

topics

全部话题 - 话题: stdout
1 2 3 4 下页 末页 (共4页)
r*****r
发帖数: 867
1
【 以下文字转载自 Linux 讨论区 】
发信人: rushier (rushier), 信区: Linux
标 题: Re: for help on mmap for stdout
发信站: BBS 未名空间站 (Sun Mar 16 09:55:36 2008)
Thanks.
But it worked for stdin without problem.
I wanted to get input from one file, and output to another file after processing. The problem is that I need to use multi-threading. I think it is better to use mmap to output to a single file in multi-thread.
Is there better way to write to a single file or output to stdout in multi-threads?
m*****e
发帖数: 4193
2
来自主题: Unix版 - How to merge stdout and stderr
I want to pipe all the output (to stdout and stderr) from a program
to another program (such as cat). How to do this?
"p1 2>&1 | p2" doesn't work
p****u
发帖数: 2422
3
来自主题: Linux版 - 请教个简单命令问题
from Advanced Bash-Scripting Guide:
http://www.tldp.org/LDP/abs/html/io-redirection.html
Chapter 20. I/O Redirection
Table of Contents
20.1. Using exec
20.2. Redirecting Code Blocks
20.3. Applications
There are always three default files [1] open, stdin (the keyboard), stdout
(the screen), and stderr (error messages output to the screen). These, and a
ny other open files, can be redirected. Redirection simply means capturing o
utput from a file, command, program, script, or even code block withi... 阅读全帖
k****f
发帖数: 3794
4
来自主题: Programming版 - 请问如何恢复正常的IO?
换stdout的时候,需要fflush的。把之前的东西刷出去。
从来没有用过open/dup2
我就是用:fopen造个FILE*
FILE*old_stdout=stdout
stdout=那个FILE*
blahblah....
fflush(stdout);
stdout=old_stdout;
d*****u
发帖数: 17243
5
来自主题: Programming版 - Python有什么好的方法建two-way pipe?
我找到一个相对简单的办法,贴一下。
自己定义一个class,
read和write代替默认的读写方式
class Pipe(subprocess.Popen):
def __init__(self, argv, timeout = 0):
self.timeout = timeout
subprocess.Popen.__init__(self, argv, stdin = subprocess.PIPE,
stdout = subprocess.PIPE, stderr = subprocess.STDOUT)
def write(self, data):
poll = select.poll()
poll.register(self.stdin.fileno(), select.POLLOUT)
fd = poll.poll(self.timeout)
if len(fd):
f = fd[0]
if f[1] > 0:
... 阅读全帖
g*********s
发帖数: 1782
6
来自主题: Programming版 - 搜狐一题,寻解法
n = 3, 4, 5的结果是多少?核对一下。
我的结果:
5 30 65
14 112 238
42 420 882
源码:
void print_legal_parentheses(int curr_pos, int pos_limit, int
left_count, std::vector& tag) {
#ifdef DEBUG
fprintf(stdout, "%d %d %d\n", curr_pos,
pos_limit, left_count);
#endif
if ( curr_pos == pos_limit ) {
for ( int i = 0; i < tag.size(); ++ i ) {
fprintf(stdout, "%c ", tag[i] == 0 ? '(' : ')');
}
fprintf(stdout, "\n");
ret... 阅读全帖
w*s
发帖数: 7227
7
sorry was cooking food, taking care of kids ...
thank you so much !
/*Define dependencies.*/
var express = require('express');
var multer = require('multer');
var app=express();
var done=false;
var exec = require('child_process').exec;
var cmd = 'echo ';
/*Configure the multer.*/
//var istarUpload = app.use(multer({ dest: './uploads/'}).single('myUpload')
);
var istarUpload = app.use(multer({ dest: './uploads/',
rename: function (fieldname, filename) {
return filename+Date.now();
... 阅读全帖
B****g
发帖数: 83
8
// ================================================
var spawn = require('child_process').spawn;
var async = require('async');
function spawnFunc(options, cb) {
var child = spawn(options.cmd, options.args, function);
var result = '';
child.stdout.on('data', function (data) {
// do some stuff with stdout data
result += data;
});
child.stderr.on('data', function (data) {
// do some stuff with stderr data
});
child.on('close', function (code) {
// error
if (code !==... 阅读全帖
b****j
发帖数: 78
9
来自主题: JobHunting版 - this question is nice
can be done in less than 20 lines of python:
import sys
last = []
for line in sys.stdin:
node, data = map(str.strip, line.split('='))
nodes = map(str.strip, node.split('.'))
for i, (s1, s2) in enumerate(map(None, last, nodes)):
if s1 != s2:
if s1:
sys.stdout.write('' % '> if s2:
sys.stdout.write('<%s>' % '><'.join(nodes[i:]))
break
sys.stdout.write(data)
last = last[:i] + nodes[i:]
if last:
print '' % '>
s*****b
发帖数: 8
10
来自主题: JobHunting版 - 请问除了刷题还能怎样提高编程
我来贴一个。
Rocket fule (Software Engineer - Machine Learning Scientist ) 技术电面后code
test. code通过了所有test cases. 人家看过code 后就拒了。问题在哪里呢?请各位
牛人不吝赐教。题目本版以前贴过
You are standing in a rectangular room and are about to fire a laser toward
the east wall. Inside the room a certain number of prisms have been placed.
They will alter the direction of the laser beam if it hits them. There
are north-facing, east-facing, west-facing, and south-facing prisms. If the
laser beam strikes an east-facing prism, its cours... 阅读全帖
o******1
发帖数: 1046
11
我用perl写一个cgi的程序,其中调用了自己写的C程序(binary executable),需要
其stdout,所以用的是backticks。
如果单独运行perl cgi,结果正常,所有该print出来的全部出现,包括调用的C程序的
output。但是一旦从html里面连接到这个perl cgi,C程序ouput的部分,在网页中不显
示。
我试着把调用C程序的部分改成调用Linux系统程序,比如ls,cat等等,其output在网
页中就正常出现了。
我很困惑,大概知道是因为C程序的output没有被返回到perl process里面。但是在单
独执行perl程序的时候,调用的C就正常的输出到stdout了。又想了一想,可能是perl
和C共享了屏幕显示,所以我分辨不出来。但是在运行perl程序的时候,被调用的C的输
出没有返回到perl process,而是在另一个过程中,所以cgi创建的新网页就不显示了
。但是对于调用的Linux系统程序,为什么能正确的返回呢?
我半路出家,没学过操作系统,对于process,thread这些概念一知半解。大牛们能不
能指点一下,如何设置,... 阅读全帖
n**a
发帖数: 104
12
You can do that. All you need to do is to REDIRECT the input/output to
stdout/stdin.
You can use WIN32 API
BOOL WINAPI AllocConsole(void)
to allocate a console for the calling process (/DLL).
Further you can wrap in a class
CConsole:: CConsole()
{
AllocConsole();
freopen("CONOUT$","w+t",stdout);
freopen("CONIN$","r+t",stdin);
}
CConsole:: ~CConsole()
{
fclose(stdout);
fclose(stdin);
FreeConsole();
}
Then when you initialize your DLL, you create an instance of CConsole
s*******n
发帖数: 38
13
来自主题: Programming版 - 同主题转寄 (转载)
写了个同主题转寄的python script. 就是附件还不work. mitbbs的附件bs直接pass.
python新手。边学边编的。
----------------------------------------------
from urllib import request
from bs4 import BeautifulSoup, NavigableString
from email.mime.text import MIMEText
from email.mime.multipart import MIMEMultipart
from email.mime.base import MIMEBase
from email import encoders
from email.header import Header
#password=sys.argv[1]
password='*****'
address='http://www.mitbbs.com/article_t/Programming/17234582.html'
urlBase='http://www.m... 阅读全帖
o******1
发帖数: 1046
14
【 以下文字转载自 Linux 讨论区 】
发信人: outlook1 (outlook1), 信区: Linux
标 题: perl cgi中调用C可执行程序为什么在html中不显示?
发信站: BBS 未名空间站 (Sat Apr 12 02:23:45 2014, 美东)
我用perl写一个cgi的程序,其中调用了自己写的C程序(binary executable),需要
其stdout,所以用的是backticks。
如果单独运行perl cgi,结果正常,所有该print出来的全部出现,包括调用的C程序的
output。但是一旦从html里面连接到这个perl cgi,C程序ouput的部分,在网页中不显
示。
我试着把调用C程序的部分改成调用Linux系统程序,比如ls,cat等等,其output在网
页中就正常出现了。
我很困惑,大概知道是因为C程序的output没有被返回到perl process里面。但是在单
独执行perl程序的时候,调用的C就正常的输出到stdout了。又想了一想,可能是perl
和C共享了屏幕显示,所以我分辨不出来。但是在运行perl程序的时候... 阅读全帖
f*******o
发帖数: 88
15
来自主题: Programming版 - 请教一个python下面popen的问题
也许对很多大牛来说是一个比较老的问题,不过对我来说是一个新问题。
起因是想从一个video文件在任意时间点读取图像出来。 最开始是用opencv实现的,在
一些文件上测试也没有问题。后来换了一批h264格式的video文件就有问题了,很多文
件读取不出来。 在网上查了一下后,换成用moviepy来读取。 但是现在有新的问题是
就是moviepy在读取有些video文件在初始化阶段就死锁了。 跟踪进去,发现问题主要
出现在:
s = self.proc.stdout.read(nbytes) 语句时。
这个之前还有一堆初始化的代码, 主要是调用ffmpeg来执行并声称一个pipe.
def initialize(self, starttime=0):
"""Opens the file, creates the pipe. """
self.close() # if any
if starttime != 0 :
offset = min(1, starttime)
i_arg = ['... 阅读全帖
m*****g
发帖数: 54
16
here is the code snippet
cmd = "xxxxxxx"
args = shlex.split(cmd)
p = subprocess.Popen(args, stdout=subprocess.PIPE, stderr=subprocess.
STDOUT)
for line in p.stdout.readlines():
print("{0}".format(line.decode("utf-8")[0:len(line)-1]))
c**e
发帖数: 457
17
来自主题: _Xiyu版 - 硬工碰到软问题
Try this. It will print to stdout and your-log-file
===========================
#!/usr/bin/perl
open (STDOUT, "| tee -a your-log-file");
print "We love Xiyu!";
close (STDOUT);
===========================
d*****d
发帖数: 2449
18
来自主题: _Xiyu版 - 硬工碰到软问题
like tch said, cade's solution is another way around, instead of copying the
log from the log file to the stdout, it copies stdout to the file. If you
can direct the log to stdout it will work, otherwise it won't.
If you don't need to see the log in the same console, just use "tail -f $LOG
" while $LOG is the name of the log file then you'll see the log output on
the fly.
R*****i
发帖数: 2126
19
来自主题: JobHunting版 - 一道老题目, 求最快捷解法
这个题目建议用红黑树做可能最快捷有效。红黑树每一次插入,删除都是log(k),求平
均值非常简单,就是根部的那个节点。所以总的计算量是O(nlog(k))。
以下是c/c++代码(需要修改数组,以便一个一个输入)。
#include
#include
#include
#define INDENT_STEP 4
enum rbtree_node_color {RED, BLACK};
typedef struct rbtree_node_t {
int value;
struct rbtree_node_t* left;
struct rbtree_node_t* right;
struct rbtree_node_t* parent;
enum rbtree_node_color color;
} *rbtree_node;
typedef rbtree_node node;
typedef enum rbtree_node_color color;
typedef struct... 阅读全帖
g********t
发帖数: 39
20
来自主题: JobHunting版 - 贡献Rocket Fuel 4 hour online test
贡献刚做的online test,职位是Machine Learning related。
Question 1 / 2 (LaserMaze)
You are standing in a rectangular room and are about to fire a laser toward
the east wall. Inside the room a certain number of prisms have been placed.
They will alter the direction of the laser beam if it hits them. There
are north-facing, east-facing, west-facing, and south-facing prisms. If the
laser beam strikes an east-facing prism, its course will be altered to be
East, regardless of what direction it had been goi... 阅读全帖
M****g
发帖数: 162
21
来自主题: JobHunting版 - 急求rocket fuel 3小时的online test!!!
Question 1 / 2 (LaserMaze)
You are standing in a rectangular room and are about to fire a laser toward
the east wall. Inside the room a certain number of prisms have been placed.
They will alter the direction of the laser beam if it hits them. There
are north-facing, east-facing, west-facing, and south-facing prisms. If the
laser beam strikes an east-facing prism, its course will be altered to be
East, regardless of what direction it had been going in before. If it hits
a south-facing prism... 阅读全帖
b*********n
发帖数: 1258
22
来自主题: SanFrancisco版 - 菜鸟请教个hadoop streaming job 的问题
我是hadoop 菜鸟,第一次用
我的job 就是个很简单的map job, no reducer,
mapper 也就是一些很简单的命令,会有一些输出到stderr, stdout
我的hadoop 命令output option:
"-outputformat org.apache.hadoop.mapred.lib.NullOutputFormat " .
"-output NONE " .
map 一直fail,error message 如下,不论我是否supress所有的stderr, stdout,一直
是下面相同的error message.
那位高手可不可以指点一二。谢谢
java.lang.RuntimeException: PipeMapRed.waitOutputThreads(): subprocess
failed with code 143
at org.apache.hadoop.streaming.PipeMapRed.waitOutputThreads(PipeMapRed.
java:311)
at org.apac
G*****s
发帖数: 27
23
来自主题: Thoughts版 - linux 或者 perl 高手们啊
Sounds like buffered output. Maybe you also need to flush the stdout after
each printf from your c++ program.
fflush(stdout);
s***g
发帖数: 495
24
来自主题: Hardware版 - pogoplug 装 ArchLinux 一点心得
arcNumber = architecture number?
It is set in uboot so should be used by uboot to pass to the kernel.
Use a newer uboot and kernel should make it boot on sata.
I have tried on pogo v4 and it boot from all three source: usb, mmc, and
sata.
My way is different from debian forum becase I think it is easier and
confirmed by your experience too.
Here is my uboot env for pogo v4. I shared it here for the same reason.
arcNumber=3960
baudrate=115200
bootcmd=setenv bootargs console=ttyS0,$baudrate root=L... 阅读全帖
M*****n
发帖数: 2301
25
来自主题: Java版 - 请教一个问题,thanks!
我把那个外部程序换成一个简单的 printf("%f\n", 3.14);
有没有事情了,stdout的输出可以被java得到,所以那个读stdout输出的
的code应该是对的。
我原来的计算程序格式是
prg < file
重定向输入一个文件。(这个程序不接受参数 prg file, 只能通过重定向)
如果我在java里面调用这个prg, 可以
直接写 command = new String("prg < file")么?
还是要用通过写process.getOutputStream()来 给prg 参数?
下面是我得code,不过好像还是不行啊:(
command = new String("prg");
Runtime rt = java.lang.Runtime.getRuntime();
process = rt.exec(command);

cs2input = new BufferedWriter(new OutputStreamWriter(process.getOutputSt
ream()));
b*********n
发帖数: 1258
26
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: babyfacenan (黑土), 信区: SanFrancisco
标 题: 菜鸟请教个hadoop streaming job 的问题
发信站: BBS 未名空间站 (Sat Feb 20 19:53:34 2010, 美东)
我是hadoop 菜鸟,第一次用
我的job 就是个很简单的map job, no reducer,
mapper 也就是一些很简单的命令,会有一些输出到stderr, stdout
我的hadoop 命令output option:
"-outputformat org.apache.hadoop.mapred.lib.NullOutputFormat " .
"-output NONE " .
map 一直fail,error message 如下,不论我是否supress所有的stderr, stdout,一直
是下面相同的error message.
那位高手可不可以指点一二。谢谢
java.lang.RuntimeException: PipeMapRed.wai
h*****0
发帖数: 4889
27
自己写一个,太简单了。
从两个流“同时”读这一行为本身是定义不良的。你的需求我估计是不管
stdout或者stderr有什么内容反正显示出来就对了,就算顺序不对也没关系。
所以你用两个线程分别从stdout和stderr里读。没数据时两个线程都阻塞着,
一旦某个有数据,立即抢占“主流”。
如果你不马上显示的话,需要开足够的buffer。
u****s
发帖数: 2186
28
一个thread里读stdout and stderr就可以
我们这的这一段code主要就是为了清Runtime.exec()的stdout/stderr buffer
l*****n
发帖数: 633
29
来自主题: Linux版 - 请问bash下 > 和 >&有啥区别
这两个都是有的。>是重定向stdout(1),>&是重定向stdout以及stderr(2),和&>一样
。所以:
cmd &> file
等于:
cmd >& file
等价于:
cmd > file 2>&1
h*******c
发帖数: 248
30
来自主题: Linux版 - 我的home server
是的。音乐,照片都是server转的。关于音乐:
http://huyouncic.wordpress.com/2010/02/18/ape-cue-to-flac-tracks/
http://huyouncic.wordpress.com/2010/12/06/convert-flacs-to-mp3s/
关于照片:
http://huyouncic.wordpress.com/2010/12/13/jpg-resize-and-re-orientation/
watch dog的下载部分:可能需要re-format
#!/usr/bin/perl
use POSIX qw(setsid);
$SEED="/mnt/nas/hdraid1/mldonkey/seeds";
$INCOMING="/mnt/nas/hdraid1/mldonkey/incoming";
$DESTINATION="/mnt/nas/hdraid1/share";
chdir '/' or die "cannot change to /:$!";
open STDIN,'/dev/null' or di... 阅读全帖
L*1
发帖数: 11537
31
Your question is not clear.
If you want to know how the web server (服务器) handles CGI internally, not
many people can help you -- better read some source code (e.g. Apache).
If you want to know how your CGI program will do the job, that should be
easy.
In the web world, we use forms to submit information. These information are
submitted to the server using POST or GET method. The form data is feed to
the CGI program, you decode it (or use existing lib functions) to get the
parameters you want. On... 阅读全帖
s*****k
发帖数: 604
32
我的问题当然是第一个意思了,我不提web服务器的话不是很清楚吗
是web server启动一个外部CGI程序,设置好很多环境变量,
并且有需要的话从stdin中输入一些数据,然后这个CGI程序
运行,完了输出到它的stdout,这时候web server就获得CGI程序
输出的stdout的stream.
我没学过操作系统什么的,要是学过里面的进程管理应该很容易知道吧

not
are
f*****3
发帖数: 19
33
你的c 语言输出是到STDOUT吗?
试试这个看输出是到STDOUT,或STDERR:
perl code.pl 1> out.txt 2> err. txt
o******1
发帖数: 1046
34
多谢上面的大牛们的指点!费了一个晚上终于找出来毛病了。但是我还有个问题,大牛
们请继续帮忙。
1. 我的那个c的可执行文件是从oracle数据库里面retrieve东西,然后打印到stdout。
2. 我的问题其实不是C可执行文件的stdout没有返回到perl,而是C没有从数据库里面
retrieve到东西。所以先纠正一下之前我的错误,不管是用backticks,还是open
filehandle "C-proc |",都是返回了的。
3. 我是这样fix了原先的问题的:在perl文件中,加入了两行环境变量的设置,i.e. $
ENV{'LD_LIBRARY_PATH'} = '...'; 和$ENV{'ORACLE_HOME'} = '...'; 之后就没问题
了。
4. 那个C可执行文件在command line直接运行是没有问题的,也就是说shell知道环境
变量$LD_LIBRARY_PATH和$ORACLE_HOME的值。但是在perl文件的backticks中执行,这
两个环境变量是空白的。
5. 我的新问题是:在编程语言中,有没有一个简单的方法,一次性的把所有的shel... 阅读全帖
s********g
发帖数: 13
35
来自主题: Programming版 - A question related to pipe
I guess i don't understand why pipe does not behave like stdout,
for stdout, the buffer is flushed either when the buffer is full or it
sees a '\n'. Pipe will not be flushed even P1 puts a '\n' at the end of
each line.
B********s
发帖数: 3610
36
来自主题: Programming版 - 请问如何恢复正常的IO?
我用dup2把程序的stdout指向了一个文件,那么我该如何使程序的stdout重新指回显示
器? thanks.
k****f
发帖数: 3794
37
有个程序,能从stdin收到命令,然后把运行结果发到stdout去。
现在想实现一个简单的script,基本就是通过查看stdout的结果
决定下一步该程序执行什么样的命令。
script语言应该有:
整数浮点变量
赋值
算术运算
复杂的条件判断
if/while/for的流程控制语句
这样子的要求,用什么工具比较好实现呢?最好linux和windows都能通用
b*********n
发帖数: 1258
38
【 以下文字转载自 SanFrancisco 讨论区 】
发信人: babyfacenan (黑土), 信区: SanFrancisco
标 题: 菜鸟请教个hadoop streaming job 的问题
发信站: BBS 未名空间站 (Sat Feb 20 19:53:34 2010, 美东)
我是hadoop 菜鸟,第一次用
我的job 就是个很简单的map job, no reducer,
mapper 也就是一些很简单的命令,会有一些输出到stderr, stdout
我的hadoop 命令output option:
"-outputformat org.apache.hadoop.mapred.lib.NullOutputFormat " .
"-output NONE " .
map 一直fail,error message 如下,不论我是否supress所有的stderr, stdout,一直
是下面相同的error message.
那位高手可不可以指点一二。谢谢
java.lang.RuntimeException: PipeMapRed.wai
t*********o
发帖数: 143
39
来自主题: Programming版 - python比java慢这么多呀
谢谢大家讨论。楼上贴的benchmark results非常有用,跟我的数据很吻合,很好 :)
我的python核心代码如下。很简单,一行一行的读,把某一列的数据重新label一下,
然后写到一个新的文件。
我已经决定就用java了。从benchmark比较结果来看,java速度已经位列最快的一波了
,居然比c#还快。
pos = 10; // 11th column of the data
valueMap = {}
cnt = 0
for ln in sys.stdin:
vals = ln.split('\t')
val = vals[pos]
if val == null or len(val) == 0: continue
else:
if (not valueMap.has_key(val)):
... 阅读全帖
v*s
发帖数: 946
40
来自主题: Programming版 - python比java慢这么多呀
我这段代码貌似快了不少。 你的用了10秒钟处理1M lines, 我这个3.9秒。 你试试看。
测试的时候都是重新定向到文件。 直接输出到屏幕那个太慢。
我把你的文件中间“xxx lines processed” 也去掉了。
import sys
pos = 10
valueMap = {}
cnt = 0
for line in sys.stdin:
vals = line.split('\t')
val = vals[pos]
if not val:
continue
else:
if not val in valueMap:
valueMap[val] = str(len(valueMap) + 1)
vals[pos] = valueMap[val]
sys.stdout.write('\t'.join(vals))
sys.stdin.close()
sys.stdout.close()
t*********o
发帖数: 143
41
来自主题: Programming版 - python比java慢这么多呀
谢谢大家讨论。楼上贴的benchmark results非常有用,跟我的数据很吻合,很好 :)
我的python核心代码如下。很简单,一行一行的读,把某一列的数据重新label一下,
然后写到一个新的文件。
我已经决定就用java了。从benchmark比较结果来看,java速度已经位列最快的一波了
,居然比c#还快。
pos = 10; // 11th column of the data
valueMap = {}
cnt = 0
for ln in sys.stdin:
vals = ln.split('\t')
val = vals[pos]
if val == null or len(val) == 0: continue
else:
if (not valueMap.has_key(val)):
... 阅读全帖
v*s
发帖数: 946
42
来自主题: Programming版 - python比java慢这么多呀
我这段代码貌似快了不少。 你的用了10秒钟处理1M lines, 我这个3.9秒。 你试试看。
测试的时候都是重新定向到文件。 直接输出到屏幕那个太慢。
我把你的文件中间“xxx lines processed” 也去掉了。
import sys
pos = 10
valueMap = {}
cnt = 0
for line in sys.stdin:
vals = line.split('\t')
val = vals[pos]
if not val:
continue
else:
if not val in valueMap:
valueMap[val] = str(len(valueMap) + 1)
vals[pos] = valueMap[val]
sys.stdout.write('\t'.join(vals))
sys.stdin.close()
sys.stdout.close()
F********g
发帖数: 475
43
Thanks, 思考猪, now it's working
#include
#include
int main()
{
while(1)
{
fprintf(stdout,"hello-out");
fflush(stdout);
fprintf(stderr,"hello-err");
sleep(1);
}
return 0;
}
l******d
发帖数: 530
44
来自主题: Programming版 - printf("%s\n", NULL)的结果
#include
int main(){
printf("Hello %s\n", NULL);
fflush(stdout);
printf("%s\n", NULL);
fflush(stdout);
return 0;
}
在linux上用gcc编译运行结果为
Hello (null)
Segmentation fault
什么原理?
h**i
发帖数: 712
45
用 netstat -anp查看的
if((listenfd=socket(AF_INET,SOCK_STREAM, 0)) == -1)
{
fprintf(stderr, "Socket Error: %s\a\n", strerror(errno));

exit(1);
}
on = 1;
ret = setsockopt(listenfd, SOL_SOCKET, SO_REUSEADDR, &on, sizeof(on));

bzero((void*)&server_addr, sizeof(server_addr));
server_addr.sin_family=AF_INET;
server_addr.sin_port=htonl(9000);
server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

if(bind(listenfd, (struct soc... 阅读全帖
o******1
发帖数: 1046
46
多谢上面的大牛们的指点!费了一个晚上终于找出来毛病了。但是我还有个问题,大牛
们请继续帮忙。
1. 我的那个c的可执行文件是从oracle数据库里面retrieve东西,然后打印到stdout。
2. 我的问题其实不是C可执行文件的stdout没有返回到perl,而是C没有从数据库里面
retrieve到东西。所以先纠正一下之前我的错误,不管是用backticks,还是open
filehandle "C-proc |",都是返回了的。
3. 我是这样fix了原先的问题的:在perl文件中,加入了两行环境变量的设置,i.e. $
ENV{'LD_LIBRARY_PATH'} = '...'; 和$ENV{'ORACLE_HOME'} = '...'; 之后就没问题
了。
4. 那个C可执行文件在command line直接运行是没有问题的,也就是说
shell知道环境变量$LD_LIBRARY_PATH和$ORACLE_HOME的值。但是在perl文件的
backticks中执行,这两个环境变量是空白的。
5. 我的新问题是:在编程语言中,有没有一个简单的方法,一次性的把所有的shel... 阅读全帖
c*****m
发帖数: 1160
47
from subprocess import Popen, PIPE, STDOUT
p = Popen(['myapp'], stdout=PIPE, stdin=PIPE, stderr=PIPE)
stdout_data = p.communicate(input='data_to_write')[0]
往 stdin里写
p****s
发帖数: 3184
48

command >& error
As I know, there is no way to separate stderr and stdout in c shells.
So actually the file "error" will hold both stdout and stderr.
f***c
发帖数: 281
49
来自主题: Unix版 - [转载] Re: freopen
【 以下文字转载自 Programming 讨论区 】
【 原文由 funsc 所发表 】
ok
the code is as follows:
while(1)
{
getcommand(args); //the function is to get a command line and works corrently
pid = fork();
if (pid == 0)
{
fd = freopen("a.txt", "w", stdout);
execvp(args[0], args);
}
else
{
waitpid(pid);
}
}
after i run ls -l > foo, the output has been written to a.txt, as i hoped,
but when i run ls again, the result does not show on screen.
it seems that after i redirect the stdout to the file "
1 2 3 4 下页 末页 (共4页)