17d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Copyright 2013 The Chromium Authors. All rights reserved.
27d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// Use of this source code is governed by a BSD-style license that can be
37d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)// found in the LICENSE file.
47d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
57d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/android/fifo_utils.h"
67d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
77d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include <sys/stat.h>
87d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
97d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)#include "base/files/file_path.h"
107d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
117d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace base {
127d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)namespace android {
137d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
147d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)bool CreateFIFO(const FilePath& path, int mode) {
157d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  // Default permissions for mkfifo() is ignored, chmod() is required.
167d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  return mkfifo(path.value().c_str(), mode) == 0 &&
177d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)         chmod(path.value().c_str(), mode) == 0;
187d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
197d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
207d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)bool RedirectStream(FILE* stream, const FilePath& path, const char* mode) {
217d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)  return freopen(path.value().c_str(), mode, stream) != NULL;
227d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}
237d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)
247d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}  // namespace android
257d4cd473f85ac64c3747c96c277f9e506a0d2246Torne (Richard Coles)}  // namespace base
26